美文网首页
vuex笔记

vuex笔记

作者: 马贞晓 | 来源:发表于2017-08-30 00:07 被阅读0次
    1. 全局安装vuex
    npm install vuex --save-dev
    
    1. 建立独立文件
    import Vue from 'vue'
    import Vuex,{mapState} from "vuex"
    Vue.use(Vuex);
    let store = new Vuex.Store({
        state:{
          list:[{name:"mazhenxiao",id:1,value:"mazhenxiao@gmailcom"}]
        },
        mutations:{
            setdata(state,arg){
                 console.log(arg);
            }
        }
      })
    
    export {store,mapState}
    
    1. 在页面导入,本例子是在vue-cli中测试,发现一直报错,报错插件为eslint-loader,果断在build文件下的webpack.base.conf.js中注释掉改插件,程序顺利跑起来。
    <template>
      <div class="hello">
    
        <h2>Essential Links</h2>
        <ul>
          <li v-for="li in list" @click="eventclick(li)">{{li.name}}</li>
        </ul>
      </div>
    </template>
    
    <script>
    import {store,mapState} from "@/router/setvuex"
    export default {
      name: 'hello',
      store,
      computed:mapState({
        list:state=>state.list
      }),
      methods:{
          eventclick(arg){
            arg.id+=1;
            arg.name+=arg.id
            this.$store.commit("setdata",arg)
            
          }
      }
    
    }
    </script>
    
    

    总结如下:
    vuex为多模块统一数据源解决方案,在当前componet中绑定数据时应绑定到computed中,并给当前模块绑定vuex实例,在有需要改动数据源中使用 this.$store.commit("xxx",{xxx});方式触发mutations,并更新view层。

    相关文章

      网友评论

          本文标题:vuex笔记

          本文链接:https://www.haomeiwen.com/subject/stfzdxtx.html