亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

詳解如何在vue-cli中使用vuex

 更新時(shí)間:2018年08月07日 13:38:49   作者:wopelo  
這篇文章主要介紹了詳解如何在vue-cli中使用vuex,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

前言

眾所周知,vuex 是一個(gè)專為 vue.js 應(yīng)用程序開(kāi)發(fā)的狀態(tài)管理模式,在構(gòu)建一個(gè)中大型單頁(yè)應(yīng)用中使用vuex可以幫助我們更好地在組件外部管理狀態(tài)。而vue-cli是vue的官方腳手架,它能幫助我們方便的配置webpack。這樣看來(lái),有很大的可能我們需要同時(shí)使用vue-cli與vuex

如何在vue-cli中使用vuex

項(xiàng)目搭建及添加vuex

當(dāng)我們使用vue-cli搭建一個(gè)vue項(xiàng)目的時(shí)候(假設(shè)項(xiàng)目名為learn-vuex),搭建完成后的文件目錄是這樣子的

 

首先使用npm install --save-dev vuex 把vuex添加到依賴,接下來(lái)就是如何在組件中使用vuex,大體上來(lái)說(shuō)有以下兩種形式。

通過(guò) store 選項(xiàng)

如果vue-cli搭建成功,在src目錄下會(huì)有一個(gè)main.js文件,main.js的主要作用是把項(xiàng)目中最頂層的app.vue組件掛載到DOM中,其他所有的組件都可以看做是app.vue的子組件。

在main.js中,做如下操作

import Vue from 'vue'
import App from './App'
import router from './router'
import Vuex from 'vuex'; 

Vue.config.productionTip = false

//注意下面的代碼
Vue.use(Vuex);
const store = new Vuex.Store({
 state: {},
 getters: {},
 actions: {},
 mutations: {}
});
//注意router選項(xiàng),此處的寫(xiě)法等同于store: store
new Vue({
 el: '#app',
 router,
 store,
 components: { App },
 template: '<App/>'
})

在組件中,就可以通過(guò)this.$store 來(lái)使用store實(shí)例

如果在項(xiàng)目中需要配置的vuex選項(xiàng)很多,我們則應(yīng)該把vuex的相關(guān)代碼分割到不同模塊

在src下新建store文件夾,在文件夾中創(chuàng)建如下幾個(gè)文件

 

我們可以隨意設(shè)置文件名,但最好可以通過(guò)文件名就能判斷出這個(gè)文件是用來(lái)干嘛的

  1. index.js:整合各個(gè)模塊,創(chuàng)建并導(dǎo)出vuex實(shí)例
  2. rootState.js:配置vuex實(shí)例的state選項(xiàng)
  3. getters.js:getter選項(xiàng)
  4. mutations.js:mutations選項(xiàng)
  5. actions.js:actions選項(xiàng)

在index.js中,我們需要

import Vue from 'vue';
import Vuex from 'vuex';
import state from './rootState.js';
import getters from './getters.js';
import mutations from './mutations.js';
import actions from './actions.js';

Vue.use(Vuex);
const store = new Vuex.Store({
 state,
 getters,
 actions,
 mutations
});

export default store;

剩下的四個(gè)文件配置都差不多一樣,以rootState.js為例

const state = {
 count: 0,
 arr: [0,1,2,3,4,5]
}

export default state;

如此這般,在main.js中,我們需要編寫(xiě)的代碼就減少了很多

import Vue from 'vue'
import App from './App'
import router from './router'
import store from './store/index'; 

Vue.config.productionTip = false

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

將vuex實(shí)例掛載到vue原型鏈上

這是一種非主流的方式,主要是受axios啟發(fā),這里有一篇博客講解如何在vue組件中使用axios,將axios掛載到vue原型鏈上是因?yàn)椴荒芡ㄟ^(guò)vue.use來(lái)使用axios

在這種方法中,我們需要

// 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'; 

Vue.config.productionTip = false

//在vue中使用vuex必須先調(diào)用vue.use方法
Vue.use(Vuex);
//具體掛載到vue原型的哪個(gè)屬性上,可以由我們自行決定
//遇到配置繁多的情況也可以進(jìn)行分割
Vue.prototype.$store = new Vuex.Store({
 state: {},
 getters: {},
 actions: {},
 mutations: {}
});

//沒(méi)有了store選項(xiàng)
new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>'
})

如此這般,還是可以通過(guò)this.$store 來(lái)使用vuex

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

相關(guān)文章

  • 使用Webstorm調(diào)試Vue代碼詳細(xì)圖文教程

    使用Webstorm調(diào)試Vue代碼詳細(xì)圖文教程

    WebStorm是一款優(yōu)秀的前端開(kāi)發(fā)IDE,之前一直可以調(diào)試Vue項(xiàng)目,下面這篇文章主要給大家介紹了關(guān)于使用Webstorm調(diào)試Vue代碼的詳細(xì)圖文教程,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • 基于vue組件實(shí)現(xiàn)猜數(shù)字游戲

    基于vue組件實(shí)現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細(xì)介紹了基于vue組件實(shí)現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Vue中的高德軌跡回放

    Vue中的高德軌跡回放

    這篇文章主要介紹了Vue中的高德軌跡回放問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 淺談vuex為什么不建議在action中修改state

    淺談vuex為什么不建議在action中修改state

    這篇文章主要介紹了淺談vuex為什么不建議在action中修改state,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Vuex狀態(tài)機(jī)的快速了解與實(shí)例應(yīng)用

    Vuex狀態(tài)機(jī)的快速了解與實(shí)例應(yīng)用

    Vuex是專門(mén)為Vuejs應(yīng)用程序設(shè)計(jì)的狀態(tài)管理工具,這篇文章主要給大家介紹了關(guān)于Vuex狀態(tài)機(jī)快速了解與實(shí)例應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • vue組件間通信子與父詳解(二)

    vue組件間通信子與父詳解(二)

    這篇文章主要為大家詳細(xì)介紹了vue組件間通信子與父的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • vue解決使用webpack打包后keep-alive不生效的方法

    vue解決使用webpack打包后keep-alive不生效的方法

    今天小編就為大家分享一篇vue解決使用webpack打包后keep-alive不生效的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-09-09
  • vue-nuxt?登錄鑒權(quán)的實(shí)現(xiàn)

    vue-nuxt?登錄鑒權(quán)的實(shí)現(xiàn)

    本文主要介紹了vue-nuxt?登錄鑒權(quán)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • vue iview實(shí)現(xiàn)分頁(yè)功能

    vue iview實(shí)現(xiàn)分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了vue iview實(shí)現(xiàn)分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • Vue中created和mounted使用詳解

    Vue中created和mounted使用詳解

    Vue中生命周期包括多個(gè)階段,如created和mounted,每階段有特定鉤子函數(shù),生命周期與瀏覽器渲染過(guò)程密切相關(guān),了解這些可以優(yōu)化頁(yè)面渲染和數(shù)據(jù)處理,created階段適用于數(shù)據(jù)初始化,而mounted階段適合進(jìn)行DOM操作和頁(yè)面渲染后的處理
    2024-10-10

最新評(píng)論