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

vue-cli配置使用Vuex的全過程記錄

 更新時(shí)間:2021年07月06日 12:16:46   作者:MarJet  
這篇文章主要給大家介紹了關(guān)于vue-cli配置使用Vuex的相關(guān)資料,Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式,本介紹的非常詳細(xì),需要的朋友可以參考下

前言

    在vue開發(fā)用我們常常會(huì)用到一些全局的數(shù)據(jù),比如用戶信息、用戶權(quán)限、一些狀態(tài)等等。我們傳統(tǒng)的數(shù)據(jù)都是單向的,所以我們得一層一層的傳遞,這樣我們遇到一個(gè)多組件共享一個(gè)數(shù)據(jù)的時(shí)候,單向的這個(gè)數(shù)據(jù)就很難以維護(hù),比如一個(gè)組件嵌套很多層但是,數(shù)據(jù)改變方法就得一層一層的傳遞。這時(shí)候我們就可以引入了vuex。

    vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。它采用集中式存儲(chǔ)管理應(yīng)用的所有組件的狀態(tài),并以相應(yīng)的規(guī)則保證狀態(tài)以一種可預(yù)測(cè)的方式發(fā)生變化。

如下圖就是vuex官網(wǎng)中管理組件間一個(gè)共享狀態(tài)的流程圖

安裝使用

我們之間在我們初始化的vue-cli的項(xiàng)目中之間使用npm或者yarn進(jìn)行一個(gè)安裝就可以了.

npm install vuex --save // yarn add vuex

然后我們進(jìn)行管理我們的狀態(tài),在根目錄下src文件中新建一個(gè)store文件夾然后在store下建立index.js作為入口文件,然后寫入我們的一個(gè)全局狀態(tài)。

這里的state作為全局的狀態(tài),getters是可以作為我們派生出來的一些狀態(tài),例如需要對(duì)state中count進(jìn)行相除操作,然后mutations就是改變state的狀態(tài)的方法第一個(gè)參數(shù)是我們的state的Object然后第二個(gè)參數(shù)是可以我傳入的值。最后這里的actions是提交mutation的而不是直接變更狀態(tài)這里的action是可以是異步函數(shù)。action中的函數(shù)第一個(gè)參數(shù)接收一個(gè)與store實(shí)例先溝通呢的方法和屬性的context函數(shù), 第二個(gè)可是我們傳入的。

在頁(yè)面中使用state以及通過getter派生出來的state和通過action派發(fā)更改state數(shù)據(jù)

這里我通過vuex中mapState、mapGetters、mapMutations、mapActions的方式引入想對(duì)應(yīng)state、getter派生數(shù)據(jù),mutation、action,然后我就直接可以再vue實(shí)例上使用了。當(dāng)然也可以直接引入我們定義的store通過store實(shí)例上的獲取我們想要的state、action、mutation。
效果如下所示

個(gè)人感覺使用vuex結(jié)合map開頭引入的方式比較優(yōu)雅點(diǎn),所以我也就使用了這種方式,更多的引用定義方法可以參考vuex官網(wǎng)所給出的示例,我這就是使用了單單我平時(shí)使用的一種形式。

vuex官方文檔: vuex.vuejs.org/zh/guide/ac

模塊化管理

當(dāng)我們的state變的多了,store對(duì)象可能就會(huì)變得非常的臃腫,所以我就需要使用模塊化管理的方式進(jìn)行對(duì)我們的state文件分文件處理,這樣更有利于我們的維護(hù)。

修改我們的store文件下的目錄結(jié)構(gòu)新建一個(gè)modules目錄以及在此目錄下新建一個(gè)main.js。

修改后的目錄如圖所,getters.js是我們派生的一些狀態(tài)。

然后修改我們的index.js文件代碼如下

import Vue from 'vue'
import Vuex from 'vuex'
import getters from './getters'

Vue.use(Vuex)

const context = require.context('./modules', false, /\.js$/)
const moduleStores = {}

context.keys().forEach(key => {
    // 獲取讀取到的文件名字并且截取
    const fileName = key.slice(2, -3);

    //通過 context(key)導(dǎo)出文件內(nèi)容
    const fileModule = context(key).default

    moduleStores[fileName] = {
        ...fileModule
    }
})

const store = new Vuex.Store({
  modules: {
    ...moduleStores,
  },
  getters
})

export default store

這里我們使用webpack的api自動(dòng)化導(dǎo)入我們建立的module

然后在我們?cè)诘慕M件的頁(yè)面使用跟之前的基本都是一模一樣的就是通過使用mapState進(jìn)行修改一些獲取state的值因?yàn)槲覀兪峭ㄟ^模塊導(dǎo)入的現(xiàn)在要獲取store中main下的count所以修改后的mapState引入使用如下

現(xiàn)在這樣我們已經(jīng)使用了模塊化的管理方式,比如想新建立一個(gè)state庫(kù)我們就只需在modules下建立就可以了,文件的格式都是如main.js形式導(dǎo)出。

vuex狀態(tài)持久化

當(dāng)我們使用vuex做為狀態(tài)管理的時(shí)候,我們刷新瀏覽器然后vuex數(shù)據(jù)就沒有了,這時(shí)候我們就需要一個(gè)數(shù)據(jù)持久化的操作,比如講我們的數(shù)據(jù)保存在localstroage中, 這是可以實(shí)現(xiàn)的。但是如果我們store模塊多的時(shí)候,可能這樣就比較麻煩,所以引入了vuex-persistedstate這個(gè)第三方的插件庫(kù)。

使用方法只需要在我們的store目錄下的index.js中引入并且在new Stroe的時(shí)候進(jìn)行一個(gè)使用就可以了 如下

這里在plugins中使用我們引入的createPersistedState方法就可以了,直接引入的方式是我們所有狀態(tài)都是進(jìn)行一個(gè)持久化的操作,當(dāng)然我們也可以修改配置,放我們想進(jìn)行持久化的一個(gè)狀態(tài)進(jìn)行持久化操作,具體的配置我這里沒有寫了具體可以參照vuex-persistedstate官方的配置。

vuex-persistedstate的Github地址: github.com/robinvdvleu

總結(jié)

在此我只簡(jiǎn)單的介紹使用了vuex使用,更具體的使用官網(wǎng)可以參考官網(wǎng)。vuex確實(shí)是方便我們管理一些全局狀態(tài)了,比如用戶信息,動(dòng)態(tài)加載路由時(shí)候存儲(chǔ)的路由。當(dāng)是小項(xiàng)目使用的時(shí)候可能增加我們的復(fù)雜度,所以在考慮項(xiàng)目前期的時(shí)候盡量的規(guī)劃好我們的項(xiàng)目目錄結(jié)構(gòu)以及數(shù)據(jù)結(jié)構(gòu)形式,這對(duì)我們快速開發(fā)和維護(hù)一個(gè)項(xiàng)目是很重要的。

到此這篇關(guān)于vue-cli配置使用Vuex的文章就介紹到這了,更多相關(guān)vue-cli配置使用Vuex內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決Vue打包上線之后部分CSS不生效的問題

    解決Vue打包上線之后部分CSS不生效的問題

    今天小編就為大家分享一篇解決Vue打包上線之后部分CSS不生效的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue獲取當(dāng)前路由的五種方式示例代碼

    vue獲取當(dāng)前路由的五種方式示例代碼

    這篇文章主要給大家介紹了關(guān)于vue獲取當(dāng)前路由的五種方式,文中通過代碼示例介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-08-08
  • vue實(shí)現(xiàn)動(dòng)態(tài)路由的方法及路由原理解析

    vue實(shí)現(xiàn)動(dòng)態(tài)路由的方法及路由原理解析

    這篇文章主要介紹了路由原理及vue實(shí)現(xiàn)動(dòng)態(tài)路由,Vue Router 提供了豐富的 API,可以輕松地實(shí)現(xiàn)路由功能,并支持路由參數(shù)、查詢參數(shù)、命名路由、嵌套路由等功能,可以滿足不同應(yīng)用程序的需求,需要的朋友可以參考下
    2023-06-06
  • Vue3 Ref獲取真實(shí)DOM學(xué)習(xí)實(shí)戰(zhàn)

    Vue3 Ref獲取真實(shí)DOM學(xué)習(xí)實(shí)戰(zhàn)

    這篇文章主要為大家介紹了Vue3 Ref獲取真實(shí)DOM學(xué)習(xí)實(shí)戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Vue3數(shù)字滾動(dòng)插件vue-countup-v3的使用

    Vue3數(shù)字滾動(dòng)插件vue-countup-v3的使用

    vue-countup-v3 插件是一個(gè)基于 Vue3 的數(shù)字動(dòng)畫插件,用于在網(wǎng)站或應(yīng)用程序中創(chuàng)建帶有數(shù)字動(dòng)畫效果的計(jì)數(shù)器,本文主要介紹了Vue3數(shù)字滾動(dòng)插件vue-countup-v3的使用,感興趣的可以了解一下
    2023-10-10
  • vue封裝圖片滑塊驗(yàn)證組件的方法

    vue封裝圖片滑塊驗(yàn)證組件的方法

    這篇文章主要為大家詳細(xì)介紹了vue封裝圖片滑塊驗(yàn)證組件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 在Vue中實(shí)現(xiàn)父組件控制子組件的值的兩種方法

    在Vue中實(shí)現(xiàn)父組件控制子組件的值的兩種方法

    在Vue開發(fā)中,父組件和子組件之間的數(shù)據(jù)傳遞是一項(xiàng)常見的任務(wù),本文將介紹如何在Vue中實(shí)現(xiàn)父組件控制子組件的值,以便靈活地管理和更新子組件的數(shù)據(jù),文中有詳細(xì)的代碼講解,需要的朋友可以參考下
    2023-11-11
  • 如何使用Vue做個(gè)簡(jiǎn)單的比較兩個(gè)數(shù)字大小頁(yè)面

    如何使用Vue做個(gè)簡(jiǎn)單的比較兩個(gè)數(shù)字大小頁(yè)面

    這篇文章主要給大家介紹了關(guān)于如何使用Vue做個(gè)簡(jiǎn)單的比較兩個(gè)數(shù)字大小頁(yè)面的相關(guān)資料,實(shí)現(xiàn)一個(gè)比較兩個(gè)數(shù)字大小的頁(yè)面,練習(xí)Vue實(shí)例的創(chuàng)建、數(shù)據(jù)綁定和事件監(jiān)聽方法,需要的朋友可以參考下
    2023-10-10
  • Vue?electron零基礎(chǔ)使用教程

    Vue?electron零基礎(chǔ)使用教程

    Electron也可以快速地將你的網(wǎng)站打包成一個(gè)原生應(yīng)用發(fā)布,下面這篇文章主要給大家介紹了關(guān)于Vue和React中快速使用Electron的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)5

    Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)5

    這篇文章主要介紹了Vue數(shù)據(jù)驅(qū)動(dòng)模擬實(shí)現(xiàn)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-01-01

最新評(píng)論

临颍县| 高邮市| 砀山县| 越西县| 景泰县| 玉林市| 陕西省| 兴宁市| 漳平市| 丰台区| 山阴县| 义马市| 都江堰市| 怀仁县| 合山市| 湟中县| 甘南县| 武城县| 孝昌县| 曲松县| 连城县| 田东县| 曲靖市| 唐山市| 永安市| 江津市| 湘潭市| 项城市| 龙泉市| 宣武区| 绥宁县| 莱芜市| 五家渠市| 灵武市| 罗定市| 德惠市| 新津县| 历史| 平阳县| 台东县| 临邑县|