最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vuex 解決報(bào)錯(cuò)this.$store.commit is not a function的方法

 更新時(shí)間:2018年12月17日 10:56:24   作者:Jason齊齊  
這篇文章主要介紹了vuex 解決報(bào)錯(cuò)this.$store.commit is not a function的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

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

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

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

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

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

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

npm install vuex --save

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

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

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

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

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

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

我的項(xiàng)目文件結(jié)構(gòu):

在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ù),使用方法也很簡單,就是使用計(jì)算屬性返回store中的數(shù)據(jù)到一個(gè)新屬性上,然后在你模板中則可以使用這個(gè)屬性值了:

任意組件中:

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

在模板中可以直接使用bankName這個(gè)屬性了,也就是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啟動(dòng)的時(shí)候的全局的初始值
  bankInf: {"name":"我是vuex的第一個(gè)數(shù)據(jù)","id":100,"bankName":"中國銀行"},
  count:0
 },
 mutations: {
  newBankName(state,msg) {
   state.bankInf.bankName = msg;
  }
 }
})

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

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

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

npm rm vuex --save

然后安裝最新的vuex

npm install vuex --save

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

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法代碼實(shí)例

    vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法代碼實(shí)例

    有時(shí)候在項(xiàng)目中我們經(jīng)常需要設(shè)置簡單的倒計(jì)時(shí)功能,這個(gè)可以通過定時(shí)器來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目使用定時(shí)器每隔幾秒運(yùn)行一次某方法的相關(guān)資料,需要的朋友可以參考下
    2023-04-04
  • 淺聊一下Vue3中的component組件

    淺聊一下Vue3中的component組件

    開發(fā)過程中我們會(huì)經(jīng)常遇到一些復(fù)雜的頁面,而這些頁面大部分由一個(gè)個(gè)小部分組合起來的,而且不同頁面中可能有些部分是一樣的,所以我們通常會(huì)將這些部分封裝成組件,在Vue中,我們可以使用components組件(模板)來實(shí)現(xiàn),本文就來詳細(xì)的說一說Vue3中的component組件
    2023-08-08
  • mpvue構(gòu)建小程序的方法(步驟+地址)

    mpvue構(gòu)建小程序的方法(步驟+地址)

    mpvue是一個(gè)使用Vue.js開發(fā)小程序的前端框架。框架基于 Vue.js 核心,這篇文章主要介紹了mpvue構(gòu)建小程序的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • Vue三種常用傳值示例(父傳子、子傳父、非父子)

    Vue三種常用傳值示例(父傳子、子傳父、非父子)

    這篇文章主要介紹了Vue傳值-三種常用傳值示例,主要介紹了父組件向子組件進(jìn)行傳值,子組件向父組件傳值和非父子組件進(jìn)行傳值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟

    Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟

    vue中網(wǎng)頁圖標(biāo)默認(rèn)使用的是vue自帶的一個(gè)icon的圖標(biāo),也是vue的logo,下面這篇文章主要給大家介紹了關(guān)于Vue設(shè)置瀏覽器小圖標(biāo)(ICON)的詳細(xì)步驟,需要的朋友可以參考下
    2023-01-01
  • 分享一個(gè)vue項(xiàng)目“腳手架”項(xiàng)目的實(shí)現(xiàn)步驟

    分享一個(gè)vue項(xiàng)目“腳手架”項(xiàng)目的實(shí)現(xiàn)步驟

    這篇文章主要介紹了分享一個(gè)vue項(xiàng)目“腳手架”項(xiàng)目的實(shí)現(xiàn)步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • vue結(jié)合v-for和input實(shí)現(xiàn)多選列表checkbox功能

    vue結(jié)合v-for和input實(shí)現(xiàn)多選列表checkbox功能

    在Vue中,可通過v-for指令和v-model實(shí)現(xiàn)多選列表功能,首先,使用v-for指令遍歷數(shù)組生成列表項(xiàng),每個(gè)列表項(xiàng)包含一個(gè)復(fù)選框,復(fù)選框的v-model綁定到一個(gè)數(shù)組變量,用于存儲(chǔ)選中的值,感興趣的朋友跟隨小編一起看看吧
    2024-09-09
  • 關(guān)于Vue.nextTick()的正確使用方法淺析

    關(guān)于Vue.nextTick()的正確使用方法淺析

    最近在項(xiàng)目中遇到了一個(gè)需求,我們通過Vue.nextTick()來解決這一需求,但發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以自己來總結(jié)下,下面這篇文章主要給大家介紹了關(guān)于Vue.nextTick()正確使用方法的相關(guān)資料,需要的朋友可以參考下。
    2017-08-08
  • apache和nginx下vue頁面刷新404的解決方案

    apache和nginx下vue頁面刷新404的解決方案

    這篇文章主要介紹了apache和nginx下vue頁面刷新404的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式

    關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式

    這篇文章主要介紹了關(guān)于el-select組件設(shè)置默認(rèn)值的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

泰顺县| 即墨市| 藁城市| 维西| 元氏县| 辰溪县| 彰化县| 凌海市| 甘洛县| 怀来县| 海盐县| 青州市| 绥棱县| 安陆市| 白沙| 博客| 北安市| 都匀市| 岱山县| 天柱县| 荃湾区| 巴彦淖尔市| 靖宇县| 武鸣县| 民丰县| 安康市| 黄大仙区| 长治县| 祁连县| 马公市| 乐至县| 古浪县| 朝阳县| 五原县| 桦甸市| 平罗县| 清水县| 海门市| 和田市| 樟树市| 洛扎县|