10分钟精通vue+vuex开发

vuex属于vue生态中的一个技术点,当随着vue编程开发后,一定会遇到vuex,至于vuex是什么,为什么需要vuex,这应该是理解层面的知识。至于怎么在代码用到vuex,怎么coding,可以先从下面这个教程开始,先混个眼熟开始,达到快速技术点扫盲的目的。

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="https://unpkg.com/vuex"></script>
    <title>10分钟精通vue+vuex开发(哎呦喂web  前端三日老师)</title>
</head>

<body>
    <div id="app">
        <h1>{{info}}</h1>
        <h1>{{count}}</h1>
        <button @click="pressMe">点击我一次</button>
    </div>
    <script>
        //可以把vuex的Store看作是所有数据的集合,具体怎么用? 
        //答:const一个Store 
        //来创建一个 store,提供一个初始 state 对象和一些 mutation
        //1.通过 store.commit 方法触发状态变更 store.commit('increment')
        //2.通过 store.state 来获取状态对象 console.log(store.state.count)
        //其它: 如果在模块化构建系统中,请确保在开头调用了 Vue.use(Vuex),这里const store必须定义在new Vue之前
        const store = new Vuex.Store({   //Store是一个类,所以S大写
            state: {
                count: 0  //思考,vue编程,怎样访问这个count变量,这里通过vue的原生计算属性computer
            },
            
            getters:{  //介绍了原生的getters属性, 它起到过滤器的作用
                counter(state){  //读作:定义一个函数,它接受一个参数,这里就是vuex中的state属性
                    //return state.count +1
                    return state.count
                }
            },
            //编程需要:希望在页面上点击事件可以操作vuex中的数据,于是引入的mutations,mutations是同步方法, 相对于 actions属性
            mutations: {
                plusCount(state,num) {  //这里所有的函数默认都会接收这里state,并且这里接收另一个参数 num
                    state.count += num
                    //state.count++
                }
            },
            actions:{


            }

            
        })

        new Vue({
            el: '#app',
            data() {
                return {
                    info: "Hello World !" //用于测试vue环境
                }
            },
            computed:{  
                count() {
                    //return store.state.count
                    return store.getters.counter //重构代码,演示和getters属性互动
                }
            },
            methods: {
                pressMe() {
                    //alter("哈哈,你点击我我");
                    //去调用stote里面 mutations
                    store.commit('plusCount',10)
                    //store.dispath('xxx',10)  //于是使用dispath方法去调用触发“异步”方法
                }
            },
        })
        
    </script>
</body>

 

posted @ 2020-03-19 23:05  轴轴  阅读(326)  评论(0编辑  收藏  举报