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

vue3+vite中使用vuex的具體步驟

 更新時間:2022年11月26日 15:36:47   作者:浩星  
在vue3+vite創(chuàng)建的項目中使用vuex,要注意的是vite有部分寫法和之前的webpack是不同的,這篇文章主要介紹了vue3+vite中使用vuex的具體步驟,需要的朋友可以參考下

前言:      

在vue3+vite創(chuàng)建的項目中使用vuex,要注意的是vite有部分寫法和之前的webpack是不同的,比如,他不支持 require,想把vue2的項目直接升級到vue3的時候,需要改很多地方,如果非要使用vite也可以,記得改相關(guān)的內(nèi)容。

具體步驟:

1、安裝vuex( vue3建議 4.0+ )

pnpm i vuex -S

2、main.js中配置

import store from '@/store'
// hx-app的全局配置
const app = createApp(App)
app.use(store)

3、新建相關(guān)的文件夾與文件

這里配置多個不同vuex內(nèi)部的js,使用vuex的modules來放不同的頁面,文件,然后統(tǒng)一使用一個getters.js

 index.js  核心文件,這里使用了import.meta.glob,而不是require

import getters from './getters'
import { createStore } from 'vuex'
 
const modulesFiles = import.meta.glob('./modules/*.js',{ eager: true }); // 異步方式
 
let modules = {}
for (const [key, value] of Object.entries(modulesFiles)) {
  var moduleName = key.replace(/^\.\/(.*)\.\w+$/, '$1');
  const name = moduleName.split('/')[1]
  modules[name] = value.default
}
 
const store = createStore({
  modules,
  getters
})
 
export default store

getters.js 內(nèi)部根據(jù)不同的頁面來發(fā)送不同的state數(shù)據(jù)

const getters = {
  sidebar: state => state.app.sidebar,
  token: state => state.user.token,
}
 
export default getters

app.js   可以定義不同的變量,然后統(tǒng)一   export default

const state = {
  sidebar: '123'
}
 
const mutations = {
  TOGGLE_SIDEBAR: state => {
    state.sidebar = '2222'
   
  },
 
const actions = {
  toggleSideBar({ commit }) {
    commit('TOGGLE_SIDEBAR')
  }
}
 
export default {
  namespaced: true,// 為每個模塊添加一個前綴名,保證模塊命明不沖突
  state,
  mutations,
  actions
}

user.js  也可以直接返回一個對象,寫法都可以

export default {
  state: {
    token: '123'
  },
 
  mutations: {
    SET_TOKEN: (state, token) => {
      state.token = token
    },
  },
 
  actions: {
  }
}

4、具體頁面使用

1)引入

import { useStore } from 'vuex'

2)具體使用

setup(){
    const store = useStore()
}

3)使用  mutations里面的方法

store.commit("app/TOGGLE_SIDEBAR", 1)

4)使用actions里面的方法

store.dispatch("app/asyncAddStoreCount", 2)

5、vuex中推出了一個插件(vuex-persistedstate)

可以解決刷新數(shù)據(jù)無保存的問題, 可以把數(shù)據(jù)除了vuex以外,在本地和會話(都支持)儲存下

1)安裝

pnpm i vuex-persistedstate -S

2)store/index.js

import createPersistedstate from 'vuex-persistedstate' //第一步導(dǎo)入
import { createStore } from 'vuex'
const store = createStore({
  modules,
  getters,
  //第二步是加這段代碼,默認(rèn)是存到了localStorage中
  plugins: [
    createPersistedstate({
      key: 'vuex-local', //存儲持久狀態(tài)的鍵。(默認(rèn):vuex)
      paths: ['user'], //部分持續(xù)狀態(tài)的任何路徑的數(shù)組。如果不加,默認(rèn)所有。
      // storage: window.sessionStorage //默認(rèn)存儲到localStorage,想要存儲到sessionStorage
    })
  ]
})

API

createPersistedState([options])使用給定的選項創(chuàng)建插件的新實例??梢蕴峁┮韵逻x項來配置您的特定需求的插件:

  • key :存儲持久狀態(tài)的鍵。(默認(rèn):vuex)
  • paths :部分持續(xù)狀態(tài)的任何路徑的數(shù)組。如果沒有路徑給出,完整的狀態(tài)是持久的。(默認(rèn):[])
  • reducer :一個函數(shù),將被調(diào)用來基于給定的路徑持久化的狀態(tài)。默認(rèn)包含這些值。
  • subscriber :一個被調(diào)用來設(shè)置突變訂閱的函數(shù)。默認(rèn)為store => handler => store.subscribe(handler)
  • storage :而不是(或與)getState和setState。默認(rèn)為localStorage。
  • getState :將被調(diào)用以重新水化先前持久狀態(tài)的函數(shù)。默認(rèn)使用storage。
  • setState :將被調(diào)用來保持給定狀態(tài)的函數(shù)。默認(rèn)使用storage。
  • filter :將被調(diào)用來過濾將setState最終觸發(fā)存儲的任何突變的函數(shù)。默認(rèn)為() => true

到此這篇關(guān)于vue3+vite中使用vuex的文章就介紹到這了,更多相關(guān)vue3+vite使用vuex內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺析vue component 組件使用

    淺析vue component 組件使用

    本篇文章主要介紹了vue component 組件使用 ,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 從零搭建一個vite+vue3+ts規(guī)范基礎(chǔ)項目(搭建過程問題小結(jié))

    從零搭建一個vite+vue3+ts規(guī)范基礎(chǔ)項目(搭建過程問題小結(jié))

    這篇文章主要介紹了從零搭建一個vite+vue3+ts規(guī)范基礎(chǔ)項目,本項目已vite開始,所以按照vite官方的命令開始,對vite+vue3+ts項目搭建過程感興趣的朋友一起看看吧
    2022-05-05
  • vue-router傳遞參數(shù)的幾種方式實例詳解

    vue-router傳遞參數(shù)的幾種方式實例詳解

    vue-router傳遞參數(shù)分為兩大類,一類是編程式的導(dǎo)航 router.push另一類是聲明式的導(dǎo)航 <router-link>,本文通過實例代碼給大家介紹vue-router傳遞參數(shù)的幾種方式,感興趣的朋友跟隨小編一起看看吧
    2018-11-11
  • 新手vue構(gòu)建單頁面應(yīng)用實例代碼

    新手vue構(gòu)建單頁面應(yīng)用實例代碼

    本篇文章主要介紹了新手vue構(gòu)建單頁面應(yīng)用實例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue.js的提示組件

    vue.js的提示組件

    這篇文章主要為大家詳細(xì)介紹了vue.js實現(xiàn)一個漂亮、靈活、可復(fù)用的提示組件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Vue實戰(zhàn)之掌握自定義指令

    Vue實戰(zhàn)之掌握自定義指令

    作為使用Vue的開發(fā)者,我們對Vue指令一定不陌生,諸如v-model、v-on、v-for、v-if等,同時Vue也為開發(fā)者提供了自定義指令的api,熟練的使用自定義指令可以極大的提高了我們編寫代碼的效率,讓我們可以節(jié)省時間開心的摸魚
    2022-11-11
  • vue單頁面如何解決多個視頻同時僅能播放一個問題

    vue單頁面如何解決多個視頻同時僅能播放一個問題

    這篇文章主要介紹了vue單頁面如何解決多個視頻同時僅能播放一個問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue3使用vue-count-to組件的實現(xiàn)

    vue3使用vue-count-to組件的實現(xiàn)

    這篇文章主要介紹了vue3使用vue-count-to組件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • javaScript與vue獲取元素的方法代碼示例

    javaScript與vue獲取元素的方法代碼示例

    在開發(fā)中我們可能會遇到這樣的問題,文本框聚焦、元素點擊等,所以下面這篇文章主要給大家介紹了關(guān)于javaScript與vue獲取元素的相關(guān)資料,需要的朋友可以參考下
    2023-10-10
  • vue3 文檔梳理快速入門

    vue3 文檔梳理快速入門

    vue3之所以受廣大袁友的喜歡,優(yōu)點必不可少呀,比如:可以監(jiān)聽動態(tài)新增的屬性;可以監(jiān)聽刪除的屬性 ;可以監(jiān)聽數(shù)組的索引和 length 屬性;下面文章小編就來向大家介紹vue3,感興趣的小伙伴不要錯過奧
    2021-09-09

最新評論

玛纳斯县| 扬中市| 景德镇市| 亚东县| 正阳县| 太仓市| 华坪县| 宣武区| 清远市| 钟山县| 思茅市| 嘉禾县| 革吉县| 含山县| 永寿县| 龙门县| 南乐县| 博湖县| 临武县| 宝山区| 聂荣县| 佛教| 恩平市| 永丰县| 五莲县| 稻城县| 普陀区| 崇州市| 托克逊县| 岱山县| 临沧市| 德保县| 新余市| 永新县| 扬中市| 安泽县| 昌宁县| 乌兰浩特市| 健康| 保康县| 扎鲁特旗|