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

首頁 > 編程 > JavaScript > 正文

解決vuex刷新狀態初始化的方法實現

2019-11-19 11:02:04
字體:
來源:轉載
供稿:網友

vuex五種基本對象

  • state:存儲狀態(變量)
  • getters:對數據獲取之前的再次編譯,可以理解為state的計算屬性。我們在組件中使用$sotre.getters.fun()
  • mutations:修改狀態,并且是同步的。在組件中使用$store.commit('',params)。這個和我們組件中的自定義事件類似。
  • actions:異步操作。在組件中使用是$store.dispath('')
  • modules:store的子模塊,為了開發大型項目,方便狀態管理而使用的。這里我們就不解釋了,用起來和上面的一樣。
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: { // 設置全局訪問的state對象    tempData: Storage['SET_TEMP_DATA'] ? JSON.parse(Storage['SET_TEMP_DATA']) : {}, // 設置初始化的值(Storage中是否存在,存在則獲取,不存在則默認賦值{})  }, mutations: { // 自定義改變state初始值的方法,這里面的參數除了state之外還可以再傳額外的參數(變量或對象);    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: { // 實時監聽state值得變化(最新狀態)    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 狀態管理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">點擊改變vuex值</div></template><script>  export default {    methods: {      click() {        let aa = this.$store.getters.tempData.aaa*1        this.$store.dispatch('SetData', {"aaa": aa += 1})      },    }  }</script>

其他

當然還可以使用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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 淮南市| 镇宁| 龙陵县| 南安市| 汉源县| 南陵县| 金堂县| 老河口市| 禄丰县| 盈江县| 庐江县| 临桂县| 洪洞县| 峨眉山市| 三门峡市| 海安县| 晋江市| 清水河县| 河曲县| 许昌县| 乐安县| 古浪县| 新建县| 漳州市| 泌阳县| 古交市| 云浮市| 怀来县| 蓝山县| 泾源县| 淮北市| 南陵县| 靖西县| 灵寿县| 唐海县| 柘城县| 抚顺市| 伊宁县| 蒙山县| 乐业县| 博爱县|