zoukankan      html  css  js  c++  java
  • vuex 使用

    创建一个store.js文件:

    
    

    import Vue from "vue";

    import Vuex from "vuex";

     

    Vue.use(Vuex);

    
    
    const store = new Vuex.Store({
        //这里的state必须是JSON,是一个对象
        state: {
            count: 0         //这里就是初始值的罗列
        },
        //突变,罗列所有可能改变state的方法
        mutations: {
            //没有所谓的大写字母的Type了,就是一个一个函数  
            add (state) {
                  state.count++;   //直接改变了state中的值,而并不是返回了一个新的state
            },
            minus (state) {
                state.count--;
            }
        }
    });
    
    export default store;

    天生任何组件都可以“通天”,没有connect和Provider(react中的中间件),仅需要在computed中使用store.state.**字样或者在mehotds中使用store.commit(**)字样即可。

    在组件内部使用store很简单,单独引用store即可:

    <style scopoed>
     
    </style>
    
    <template>
        <div>
            我是子组件
            <h1>
                <button v-on:click="minusnandler">减少</button>
                {{count}}
                <button v-on:click="addhandler">增加</button>
            </h1>
        </div>
    </template>
    
    <script>
        import store from "./store.js";
        export default {
            computed : {
                count(){
                    return store.state.count;
                }
            },
            methods : {
                addhandler(){
                    store.commit("add");
                },
                minusnandler(){
                    store.commit("minus");
                }
            }
        }
    </script>

    和Redux相比,减少了Action和Reducer。因为Vuex中简化了Store的书写,Store中并不存在这样的写法:

    (state,action)=>{
    根据action返回新state
    }

    而是变为了:

    new Vuex.Store({
    state:{
    
    },
    mutations : {
         //罗列一些函数,可以直接改变state的值
    }
    })
  • 相关阅读:
    MySql数据类型
    mysql中char,varchar,text区别
    php错误提示:date_default_timezone_get
    才储分析
    js 阻止后续事件
    大型高性能网站的十项规则
    为rand函数加入随机数种子
    php-通过共享内存实现消息队列和进程通信
    PHP比较有用的常量
    json处理内容中多双引号的情况
  • 原文地址:https://www.cnblogs.com/caoleyun/p/12693002.html
Copyright © 2011-2022 走看看