美文网首页
vuex 简洁写法

vuex 简洁写法

作者: 汶沐 | 来源:发表于2019-02-13 09:45 被阅读0次

在src下新建一个 /store/index.js,内容如下

/*引用vue和vuex*/
import Vue from 'vue'
import Vuex from 'vuex';
Vue.use(Vuex)

/*设置state参数*/
const state = {
  childText2: '',
  childText:"",
  txtArr:[]
}

const mutations = {
  changeChildText(state, str){
    state.childText = str;
    state.txtArr.push(str)
  },
  changeChildText2(state, str){
    state.childText2 = str;
    state.txtArr.push(str)
  },
  delLast() {
    state.txtArr.pop()
  }

}

const store = new Vuex.Store({
  state: state,
  mutations: mutations
})

export default store;    

在main.js里面引用

import store from './store/index'
new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})

这样就可以在vue里面使用了:

<template>
  <div class="ctn">
    <header v-for="item in getArr">
      {{item}}
    </header>
    <slot v-if="getArr.length == 0">暂无信息</slot>
    <div>
      <input type="text" v-model="txt" placeholder="请输入对话内容">
    </div>
    <div>
      <button @click="changeTxt">甲方发言</button>
      <button @click="changeTxt2">乙方发言</button>
      <button v-if="getArr.length != 0" @click="delTxt">撤回最新发言</button>
    </div>
  </div>
</template>

<script>
  export default {
    data (){
      return{
        txt:''
      }
    },
    methods:{
      changeTxt (){ // 调用/store/index.js里的mutations方法并传参
        this.$store.commit("changeChildText", '甲:'+this.txt);
        this.txt = ''
      },
      changeTxt2 (){ //同理
        this.$store.commit("changeChildText2", '乙:'+this.txt);
        this.txt = ''
      },
      delTxt(){ //同理
        this.$store.commit("delLast")
      }
    },
    computed: {
      getTxt () { // 获取 /store/index.js里的state参数
        return this.$store.state.childText;
      },
      getTxt2 () { //同理
        return this.$store.state.childText2;
      },
      getArr () { //同理
        return this.$store.state.txtArr;
      }
    }
  }
</script>

<style scoped>
  input {
    padding: 2px;
  }
</style>

相关文章

  • vuex 简洁写法

    在src下新建一个 /store/index.js,内容如下 在main.js里面引用 这样就可以在vue里面使用了:

  • 历史记录

    单个组件中写法 引入 vuex写法

  • vuex-class用法

    vuex-class可以包装vuex的写法,使代码简化 Installation $ npm install --...

  • vuex与axios的优化写法

    vuex与axios的优化写法 封装方法 使用方法 vuex: action.js get post put de...

  • 手写简单Vuex

    手写 vuex 插件固定写法 混入 创建 Store 由于需要使用 new Vuex.Store 来创建,所以 V...

  • vuex

    VUEX and router 简化vuex的写法,从而提高开发效率:1.简化state第一步:引入import ...

  • 简洁的Bash Programming技巧(二)

    简洁的Bash Programming技巧(二) 1. 检查命令执行是否成功 第一种写法,比较常见: 简洁的写法:...

  • switch结构采用对象形式重写

    原因 switch结构不利于代码重用 对象属性写法更加简洁 例子 swith写法 对象属性写法

  • Adapter 超简洁写法

    EasyListView 每次用到 ListView 时候都需要写一个Adapter;令人恶心的是需要在getVi...

  • this.$emit简洁写法

    子组件 this.emit('update:idx',index)(传递过来的最新值)父组件 实际意思就是把i...

网友评论

      本文标题:vuex 简洁写法

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