国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 語(yǔ)言 > JavaScript > 正文

解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn)

2024-05-06 15:35:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

vuex五種基本對(duì)象

state:存儲(chǔ)狀態(tài)(變量) getters:對(duì)數(shù)據(jù)獲取之前的再次編譯,可以理解為state的計(jì)算屬性。我們?cè)诮M件中使用$sotre.getters.fun() mutations:修改狀態(tài),并且是同步的。在組件中使用$store.commit('',params)。這個(gè)和我們組件中的自定義事件類似。 actions:異步操作。在組件中使用是$store.dispath('') modules:store的子模塊,為了開發(fā)大型項(xiàng)目,方便狀態(tài)管理而使用的。這里我們就不解釋了,用起來(lái)和上面的一樣。
npm install vuex -S // 安裝vuex

src/store/index.js

import Vue from 'vue'import Vuex from 'vuex'import temp from '@/store/modules/temp'Vue.use( Vuex ); // 掛載在vueconst store = new Vuex.Store({  modules: {    temp,  }, state: {  }, getters: {  }, mutations: {  },});export default store; // 拋出

src/store/modules/temp.js

const Storage = sessionStorageconst tempInfo = {  state: { // 設(shè)置全局訪問(wèn)的state對(duì)象    tempData: Storage['SET_TEMP_DATA'] ? JSON.parse(Storage['SET_TEMP_DATA']) : {}, // 設(shè)置初始化的值(Storage中是否存在,存在則獲取,不存在則默認(rèn)賦值{})  }, mutations: { // 自定義改變state初始值的方法,這里面的參數(shù)除了state之外還可以再傳額外的參數(shù)(變量或?qū)ο?;    SET_TEMP_DATA(state, tempData) {      state.tempData = tempData    },  }, actions: {    SetData({ commit }, tempData) {      commit('SET_TEMP_DATA', tempData); // 同步操作      Storage.setItem('SET_TEMP_DATA', JSON.stringify(tempData))    }  }, getters: { // 實(shí)時(shí)監(jiān)聽state值得變化(最新狀態(tài))    tempData: (state) => {      return state.tempData    }  }}export default tempInfo;

main.js

import Vue from 'vue'import App from './App'import router from './router'import store from '@/store/index' //vuex 狀態(tài)管理Vue.config.productionTip = false/* eslint-disable no-new */new Vue({ el: '#app', router, store, // 使用store components: { App }, template: '<App/>'})

src/index.vue

<template> <div class="move-forward">   <div @click="click">點(diǎn)擊改變vuex值</div></template><script>  export default {    methods: {      click() {        let aa = this.$store.getters.tempData.aaa*1        this.$store.dispatch('SetData', {"aaa": aa += 1})      },    }  }</script>

其他

當(dāng)然還可以使用vuex-persistedstate、vuex-along等這些第三方插件。

npm i -S vuex-persistedstate或npm i -S vuex-along
import Vue from 'vue'import Vuex from 'vuex'import temp from '@/store/modules/temp'import createPersistedSatte from 'vuex-persistedstate' // 引入Vue.use( Vuex );const store = new Vuex.Store({  modules: {    temp,  }, state: {  }, getters: {  }, mutations: {  },  plugins: [createPersistedSatte()], // 掛載插件});export default store            
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 神池县| 喀喇沁旗| 磐石市| 麻栗坡县| 启东市| 抚州市| 芒康县| 咸宁市| 张家界市| 阿鲁科尔沁旗| 东乡族自治县| 合水县| 邮箱| 长白| 资阳市| 乃东县| 晋中市| 筠连县| 乳山市| 垣曲县| 古丈县| 宁阳县| 永靖县| 大理市| 合作市| 梁平县| 石嘴山市| 调兵山市| 静安区| 申扎县| 哈尔滨市| 绥中县| 曲松县| 商丘市| 红桥区| 睢宁县| 台中县| 金平| 吉隆县| 南郑县| 水城县|