眾所周知,在`vue`的項目里父子組件間可以用`props` 或者 `$emit` 等方式 進行數據傳遞,而如果項目稍微大一點的話有很多平行組件,這個時候在這些組件間傳遞數據,使用這些方法會比較麻煩,代碼也會變得不利于服用。
我們可以`vuex`來解決這個問題
vuex其實[官網](https://vuex.vuejs.org/zh/)上不是太好理解,可以直接看看代碼怎么實現的。
首先還是要先安裝vuex
```
npm install --save vuex
```
可以創建一個單獨的store文件目錄,里面專門存放相關的文件
然后新建index.js文件。

> store/index.js
```
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
// 初始化全局的一個變量
testTxt: {"tips":"這是一條vuex的數據","id":1}
}
})
export default store
```
然后在`main.js/main.ts` 中注冊`store`
```
import Vue from 'vue'
import App from './App'
import router from './router'
import store from './../store/index'
/* eslint-disable no-new */
new Vue({
el: '#app',
router,
store,
template: '<App/>',
components: { App }
})
```
接下來在組件中使用
```
export default {
...
data(){
value : "這又是修改后的value",
},
computed: {
getTxt() {
return this.$store.state.testTxt.tips;
}
},
methods: {
modifyTxt: function() {
this.$store.commit('modifyTips', this.value)
}
}
...
}
```
然后在index.js文件里可以修改
```
const store = new Vuex.Store({
state: {
// 初始化全局的一個變量
testTxt: {"tips":"這是一條vuex的數據","id":1}
},
mutations: {
modifyTips(state,msg) {
state.testTxt.tips= msg;
}
}
})
export default store
```
當然了,vuex的版本肯定是越新越好
- 前言
- 寫在前言
- 一些開發遇到的問題
- H5標簽中的屬性控制
- el-table的每個對象的屬性值
- el-form多個表單同時驗證必填項
- el-table 修改表頭
- el-input的多種驗證
- vue鍵盤回車事件
- blob導出
- table中selectable( 是否勾選)
- 手動更新視圖
- 日期選擇器,自定義可選范圍
- select 自定義搜索
- 監聽回車事件
- 表格初始化不可勾選
- el-input輸入限制
- table時間格式轉換
- table自適應高度
- JS問題記錄
- js字符數組轉換為數字數組
- js防抖和節流
- JS電腦是否有網判斷
- JS屬性記錄
- 遍歷方法(12個)
- 改變原數組(9個)
- 不改變原數組(8個)
- JS數組、字符串常用方法
- 遍歷對象
- Vue
- vue-router
- vue-router 如何在新窗口打開頁面
- vue-router 之 keep-alive緩存篇
- keep-alive項目案例
- 路由知識點歸納總結
- params、query傳參
- vue問題記錄
- vuejs npm chromedriver 報錯
- vuex
- vuex個人理解
- Vuex的簡單實例應用