vuex 子组件传值

时间:2023-03-10 03:29:54
vuex 子组件传值

以下是基础的使用方法,详细且深入使用方法详细见博客:https://segmentfault.com/a/1190000015782272

Vuex官网地址:https://vuex.vuejs.org/zh/guide/

步骤一:安装vuex 

 npm install vuex --save 

步骤二:简单使用

  • 构建核心仓库store.js

Vuex 应用的状态 state都应当存放在store.js 里面,Vue 组件可以从 store.js 里面获取状态,可以把 store 通俗的理解为一个全局变量的仓库。

但是和单纯的全局变量又有一些区别,主要体现在当 store 中的状态发生改变时,相应的 vue 组件也会得到高效更新

src 目录下创建一个 vuex 目录,vuex下创建 store.js

vuex 子组件传值

  • store.js中
import Vue from 'vue'
import vuex from 'vuex'
Vue.use(vuex); export default new vuex.Store({
// 首先声明一个状态 state
state:{
word:''
},// 更新状态
mutations:{
changeWord(state, _word) {
state.word = _word;
}
},
})
  • main.js中
import store from './vuex/store'

vuex 子组件传值

  • 传递

传递方法:

A界面改变store中state里的参数:  this.$store.commit( 'setId' ,(要传递的参数id) )

B界面接收变化数据参数: this.$store.state.id

但是通过 vuex这样写,页面刷新之后,数据也会消失。它只是对变量提升。

A页面改变store中state的参数:

methods:{
sureChange () {
this.$store.commit( 'changeWord' ,this.changeWord.trim()); this.$router.push('/hbchange/2?id=2');
}
},
<button @click="changeword">按钮</button>

B页面

sureEdit () {
console.log(this.$store.state.word )
}