vuex(2)如何传值

2018-07-06  本文已影响0人  奶瓶SAMA

首先我在vue的官网找到了vuex的官方配置文件

如下图 配置文件
我们先做一个简单页面input传值

第一步 (引用并调用vue )在main.js里

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store/index.js'
Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  store,
  components: { App },
  template: '<App/>'
})

第二步 (实现点击按钮功能)首页

<template>
  <div class="hello">
    <input type="text" v-model="text" />
    <button @click=addShop(text)>点击</button>
  </div>
</template>

<script>
//导入异步提交
    import {mapActions} from 'vuex'
export default {
  data () {
    return {
      text:9
    }
  },
      
      methods:{
//异步提交
        ...mapActions([
            "addShop"
        ])
      }
}
</script>

第三步 (通过点击的事件来配对相对vuex里的事件)actions.js

export const addShop = function ({commit}, shop) {
    console.log("action的参数是"+shop)
//点击发送me的事件  并将传来的内容给发送出去
  commit("me", shop)
}

第四步 (将发送来的‘me’事件来处理 将vuex里的state里的good来改变值) mutations.js

const mutations = {
 ["me"](state, shop) {
    state.good=shop
//  state.good = shop;
    console.log("我是mutation"+shop)
  }
}

export default mutations

第五步 (配置vue里的状态) state.js

const state = {
    good:999
}
export default state

第六步 (也是最后一步 第二个页面来接受第一个页面传来的内容 ) 第二个页面

<template>
  <div class="hello">
<!--页面输出-->
    {{good}}
  </div>
</template>

<script>
//导入获取
    import {mapGetters} from 'vuex'
export default {

  },
//调用获取的方法  将vx里的good里给调出来 
     computed:mapGetters([
        'good'
      ])
}
</script>

然后就可以点击输入以后 来到第二个页面查看内容

上一篇下一篇

猜你喜欢

热点阅读