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

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也可以,記得改相關的內容。

具體步驟:

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、新建相關的文件夾與文件

這里配置多個不同vuex內部的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 內部根據(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' //第一步導入
import { createStore } from 'vuex'
const store = createStore({
  modules,
  getters,
  //第二步是加這段代碼,默認是存到了localStorage中
  plugins: [
    createPersistedstate({
      key: 'vuex-local', //存儲持久狀態(tài)的鍵。(默認:vuex)
      paths: ['user'], //部分持續(xù)狀態(tài)的任何路徑的數(shù)組。如果不加,默認所有。
      // storage: window.sessionStorage //默認存儲到localStorage,想要存儲到sessionStorage
    })
  ]
})

API

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

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

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

相關文章

  • 打包組件報錯:Error:Cannot?find?module?'vue/compiler-sfc'

    打包組件報錯:Error:Cannot?find?module?'vue/compiler-sfc&ap

    最近遇到這樣的問題,vue組件庫搭建過程中使用webpack打包組件時報錯,本文給大家分享打包組件報錯:Error:?Cannot?find?module?‘vue/compiler-sfc‘的解決方法,感興趣的朋友一起看看吧
    2023-12-12
  • vue中自定義組件雙向綁定的三種方法總結

    vue中自定義組件雙向綁定的三種方法總結

    這篇文章主要介紹了vue中自定義組件雙向綁定的三種方法總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • VUE-cli3使用 svg-sprite-loader

    VUE-cli3使用 svg-sprite-loader

    svg-sprite-loader 的插件,用來根據(jù)導入的 svg 文件自動生成 symbol 標簽并插入 html,這篇文章主要介紹了VUE-cli3使用 svg-sprite-loader,需要的朋友可以參考下
    2018-10-10
  • vue實力踩坑?當前頁push當前頁無效的解決

    vue實力踩坑?當前頁push當前頁無效的解決

    這篇文章主要介紹了vue實力踩坑?當前頁push當前頁無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 解決vue3+vite配置unplugin-vue-component找不到Vant組件

    解決vue3+vite配置unplugin-vue-component找不到Vant組件

    這篇文章主要為大家介紹了vue3+vite配置unplugin-vue-component找不到Vant組件問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • vue?element-ui的table列表中展示多張圖片(可放大)效果實例

    vue?element-ui的table列表中展示多張圖片(可放大)效果實例

    這篇文章主要給大家介紹了關于vue?element-ui的table列表中展示多張圖片(可放大)效果的相關資料,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • Vue頁面骨架屏的實現(xiàn)方法

    Vue頁面骨架屏的實現(xiàn)方法

    在開發(fā)webapp的時候總是會受到首屏加載時間過長的影響,越來越多的APP采用了“骨架屏”的方式去提升用戶體驗。這篇文章主要介紹了Vue頁面骨架屏的實現(xiàn)方法,感興趣的小伙伴們可以參考一下
    2018-05-05
  • 前端大文件上傳與下載(分片上傳)的詳細過程

    前端大文件上傳與下載(分片上傳)的詳細過程

    最近遇見一個需要上傳超大大文件的需求,所以下面這篇文章主要給大家介紹了關于前端大文件上傳與下載(分片上傳)的詳細過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Vue?中如何使用?el-date-picker?限制只能選擇當天、當天之前或當天之后日期的方法詳解

    Vue?中如何使用?el-date-picker?限制只能選擇當天、當天之前或當天之后日期的方法詳解

    在Vue前端開發(fā)中,使用 el-date-picker 組件進行日期選擇是常見的需求,有時候我們需要限制用戶只能選擇當天、當天之前或當天之后的日期,本文將詳細介紹如何使用 el-date-picker 組件實現(xiàn)這些限制,讓你能夠輕松應對各種日期選擇場景,需要的朋友可以參考下
    2023-09-09
  • vue插件v-touch的坑及解決(不能上下滑動)

    vue插件v-touch的坑及解決(不能上下滑動)

    這篇文章主要介紹了vue插件v-touch的坑及解決(不能上下滑動),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評論