国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

vuex 解決報錯this.$store.commit is not a function的方法

來源:懂視網(wǎng) 責編:小采 時間:2020-11-27 22:02:25
文檔

vuex 解決報錯this.$store.commit is not a function的方法

vuex 解決報錯this.$store.commit is not a function的方法:Vue的項目中,如果項目簡單, 父子組件之間的數(shù)據(jù)傳遞可以使用 props 或者 $emit 等方式 進行傳遞 但是如果是大中型項目中,很多時候都需要在不相關的平行組件之間傳遞數(shù)據(jù),并且很多數(shù)據(jù)需要多個組件循環(huán)使用。這時候再使用上面的方法會讓項目代碼變得冗長,
推薦度:
導讀vuex 解決報錯this.$store.commit is not a function的方法:Vue的項目中,如果項目簡單, 父子組件之間的數(shù)據(jù)傳遞可以使用 props 或者 $emit 等方式 進行傳遞 但是如果是大中型項目中,很多時候都需要在不相關的平行組件之間傳遞數(shù)據(jù),并且很多數(shù)據(jù)需要多個組件循環(huán)使用。這時候再使用上面的方法會讓項目代碼變得冗長,

Vue的項目中,如果項目簡單, 父子組件之間的數(shù)據(jù)傳遞可以使用 props 或者 $emit 等方式 進行傳遞

但是如果是大中型項目中,很多時候都需要在不相關的平行組件之間傳遞數(shù)據(jù),并且很多數(shù)據(jù)需要多個組件循環(huán)使用。這時候再使用上面的方法會讓項目代碼變得冗長,并且不利于組件的復用,提高了耦合度。

Vue 的狀態(tài)管理工具 Vuex 完美的解決了這個問題。

看了下vuex的官網(wǎng),覺得不是很好理解,有的時候我們只是需要動態(tài)的從一個組件中獲取數(shù)據(jù)(官網(wǎng)稱為“組件層級”:是個獨立的控件,作用范圍只在組件之內(nèi))然后想放到一個被官網(wǎng)稱作“應用層級”(在項目的任意地方都可以隨時獲取和動態(tài)的修改,在修改之后,vue會為你的整個項目做更新)的地方。這是我最初來學習vue的原因,我并不想做一個前端數(shù)據(jù)結構庫。。

下面看看我一步一步的小例子

首先安裝vuex 目前公司項目已經(jīng)被我從vue1.0遷移到vue2.0,下載并安裝vue

npm install vuex --save

然后在index.html同級新建文件夾store,在文件夾內(nèi)新建index.js文件,這個文件我們用來組裝模塊并導出 store 的文件

【一、獲取store中的數(shù)據(jù)】

import Vue from 'vue'
import Vuex from 'vuex'

// 告訴 vue “使用” vuex
Vue.use(Vuex)

// 創(chuàng)建一個對象來保存應用啟動時的初始狀態(tài)
// 需要維護的狀態(tài)
const store = new Vuex.Store({
 state: {
 // 放置初始狀態(tài) app啟動的時候的全局的初始值
 bankInf: {"name":"我是vuex的第一個數(shù)據(jù)","id":100,"bankName":"中國銀行"}
 }
})
// 整合初始狀態(tài)和變更函數(shù),我們就得到了我們所需的 store
// 至此,這個 store 就可以連接到我們的應用中
export default store

在vue根文件中注冊store,這樣所有的組件都可以使用store中的數(shù)據(jù)了

我的項目文件結構:

在main.js文件中注冊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 }
})

這樣簡單的第一步就完成了,你可以再任意組件中使用store中的數(shù)據(jù),使用方法也很簡單,就是使用計算屬性返回store中的數(shù)據(jù)到一個新屬性上,然后在你模板中則可以使用這個屬性值了:

任意組件中:

export default {
 ...
 computed: {
 bankName() {
 return this.$store.state.bankInf.bankName;
 }
 },
 ...
}

在模板中可以直接使用bankName這個屬性了,也就是store中的中國銀行

【二、在組件中修改store中的狀態(tài) 】

在任意組件中添加html模板

<div class="bank">
 <list-header :headerData="bankName"></list-header>
 04銀行詳情頁面
 <input name="" v-model="textValue">
 <button type="button" name="獲取數(shù)據(jù)" @click="newBankName"></button>
</div>

然后組件中提交mutation

export default {
 ...
 computed: {
 bankName() {
 return this.$store.state.bankInf.bankName;
 }
 },
 methods: {
 newBankName: function() {
 this.$store.commit('newBankName', this.textValue)
 }
 }
 ... 
}

在store中的index.js中添加mutations:

const store = new Vuex.Store({
 state: {
 // 放置初始狀態(tài) app啟動的時候的全局的初始值
 bankInf: {"name":"我是vuex的第一個數(shù)據(jù)","id":100,"bankName":"中國銀行"},
 count:0
 },
 mutations: {
 newBankName(state,msg) {
 state.bankInf.bankName = msg;
 }
 }
})

這樣你發(fā)現(xiàn),在點擊提交按鈕的時候,頁面已經(jīng)顯示你修改的數(shù)據(jù)了,并且所有復用這個組件的地方的數(shù)據(jù)全都被vue更新了;

如果在使用中發(fā)現(xiàn)報錯this.$store.commit is not a function ,請打開你項目的配置文件package.json,查看你正在使用的vuex的版本,我正在使用的是vuex2.0,

如果想刪除舊版本的vuex并安裝新版本的vuex請使用

npm rm vuex --save

然后安裝最新的vuex

npm install vuex --save

即可解決這個錯誤,或者是查看vuex官網(wǎng)api修改提交mutation的語句

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

vuex 解決報錯this.$store.commit is not a function的方法

vuex 解決報錯this.$store.commit is not a function的方法:Vue的項目中,如果項目簡單, 父子組件之間的數(shù)據(jù)傳遞可以使用 props 或者 $emit 等方式 進行傳遞 但是如果是大中型項目中,很多時候都需要在不相關的平行組件之間傳遞數(shù)據(jù),并且很多數(shù)據(jù)需要多個組件循環(huán)使用。這時候再使用上面的方法會讓項目代碼變得冗長,
推薦度:
標簽: not is function
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 九九精品视频一区二区三区 | 国产精品电影一区二区三区 | 成人精品在线视频 | 最新偷窥盗摄视频在线 | 91久久国产综合精品女同我 | 精品久久久一二三区 | 欧美日韩一区二区三区在线 | 二区在线播放 | 欧美日韩免费看 | 国产精品一区二区午夜嘿嘿嘿小说 | 国产精品免费_区二区三区观看 | 国产精品一区久久 | 日韩亚洲欧美视频 | 国产一区二区三区 韩国女主播 | 韩日一区二区三区 | 美女牲交视频一级毛片 | 国产成人精品三区 | 欧美一区二区在线观看免费网站 | 国产欧美中文字幕 | 欧美国产日韩另类 | 欧美高清一区二区三 | 亚洲最大色网 | 国产精选在线视频 | 97久久综合区小说区图片专区 | 亚洲国产成人久久午夜 | 午夜高清在线观看免费完整版 | 国产成人久久精品亚洲小说 | 欧美日韩国产高清一区二区三区 | 精品久久久久久久一区二区手机版 | 国产欧美日韩精品在钱 | 欧美成人国产 | 国产日韩一区二区三区在线播放 | 91中文| 在线观看免费精品国自产 | 99国内精品久久久久久久 | 国产精品亚洲综合 | 国产欧美精品区一区二区三区 | 日韩欧美在线观看 | 亚洲欧美日韩综合精品网 | 精品久久一区二区 | 91麻豆国产香蕉久久精品 |