自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

我們一起看看Vuex使用流程是什么樣的?

開發(fā) 架構
action 可以處理異步,通過dispatch觸發(fā),不能直接修改state,首先在組件中通過dispatch觸發(fā)action,然后在action函數(shù)內部commit觸發(fā)mutation,通過mutation修改state狀態(tài)值。

[[402869]]

一、使用Vuex的目的

實現(xiàn)多組件狀態(tài)管理,多個組件之間需要數(shù)據(jù)共享

二、Vuex 的五大核心

其中state和mutation是必須的,其他可根據(jù)需求來加

  • 1、state 負責狀態(tài)管理,類似于vue中的data,用于初始化數(shù)據(jù)
  • 2、mutation 專用于修改state中的數(shù)據(jù),通過commit觸發(fā)
  • 3、action 可以處理異步,通過dispatch觸發(fā),不能直接修改state,首先在組件中通過dispatch觸發(fā)action,然后在action函數(shù)內部commit觸發(fā)mutation,通過mutation修改state狀態(tài)值
  • 4、getter Vuex中的計算屬性,相當于vue中的computed,依賴于state狀態(tài)值,狀態(tài)值一旦改變,getter會重新計算,也就是說,當一個數(shù)據(jù)依賴于另一個數(shù)據(jù)發(fā)生變化時,就要使用getter
  • 5、module 模塊化管理

使用流程

1.創(chuàng)建store實例并且導出 store.js

  1. import Vue from 'vue' 
  2. import Vuex from 'vuex' 
  3. Vue.use(Vuex) 
  4. const store = new Vuex.Store({ 
  5.     //聲明state 
  6.     state: {  
  7.       userInfo:{ userName:"" } 
  8.     },        
  9.     //聲明mutations 
  10.     mutations: { 
  11.       setUserInfo(state,userInfo){   
  12.         state.userInfo = userInfo 
  13.       } 
  14.     },    
  15.     //聲明actions 
  16.     actions: { 
  17.       setUserInfo({ commit },userInfo){ 
  18.         commit('setUserInfo',userInfo) 
  19.       } 
  20.     },     
  21.     //聲明getters 
  22.     getters:{ 
  23.       userName(state){ 
  24.         return "姓名:"+state.userInfo.userName 
  25.       } 
  26.     } 
  27. }) 
  28. export default store 

2.引入Vuex

  1. import Vue from 'vue' 
  2. import App from './App.vue' 
  3. import store from './store' 
  4. new Vue({ 
  5.   render: h => h(App), 
  6.   store 
  7. }).$mount('#app'

3.組件內使用

使用方式一

  1. <template> 
  2.  <div> 
  3.      <!-- state使用 --> 
  4.      <p>{{$store.state.userInfo.userName}}</p> 
  5.      <!-- getters使用 --> 
  6.      <p>{{$store.getters.userName}}</p> 
  7.      <!-- action使用 --> 
  8.      <p @click="setInfo">存儲信息</p> 
  9.  </div> 
  10. </template> 
  1. export default { 
  2.    methods: { 
  3.       setInfo(){ 
  4.         this.$store.commit('setUserInfo',{ 
  5.           userName:"鬼鬼"  
  6.        })  
  7.      } 
  8.    } 

使用方式二

  1. <template> 
  2.  <div> 
  3.      <!-- state使用 --> 
  4.      <p>{{userInfo.userName}}</p> 
  5.      <!-- getters使用 --> 
  6.      <p>{{userName}}</p> 
  7.      <!-- action使用 --> 
  8.      <p @click="setInfo">存儲信息</p> 
  9.  </div> 
  10. </template> 
  1. import { mapState, mapGetters, mapMutations, mapActions } from 'vuex' 
  2. export default { 
  3.   methods: { 
  4.     ...mapActions(['setUserInfo']), 
  5.     // ...mapMutations(["setUserInfo"]), 
  6.     setInfo(){ 
  7.       this.setUserInfo({ 
  8.          userName:"鬼鬼"  
  9.      }) 
  10.   }, 
  11.   computed: { 
  12.     ...mapState({  
  13.         userInfo: state => state.userInfo 
  14.      }), 
  15.     ...mapGetters(['userName']), 
  16.   } 

本文轉載自微信公眾號「前端人」,作者鬼哥。轉載本文請聯(lián)系前端人公眾號。

 

責任編輯:武曉燕 來源: 前端人
相關推薦

2023-03-29 08:26:06

2022-09-26 14:25:55

Flowable流程ID

2022-01-19 08:35:24

指標敏感度CTR

2022-02-23 08:41:58

NATIPv4IPv6

2024-06-26 08:14:43

2023-04-11 07:43:32

PostmanGraphQL查詢。

2018-07-12 12:13:55

華為

2017-02-08 10:01:13

大數(shù)據(jù)ETL技術

2022-08-01 07:57:03

數(shù)組操作內存

2023-03-26 12:45:52

Linux內核頭文件

2023-05-09 07:51:28

Spring循環(huán)依賴

2022-10-08 00:00:05

SQL機制結構

2017-01-22 15:09:08

架構閉環(huán)演進

2023-04-26 07:30:00

promptUI非結構化

2014-02-25 09:55:07

敏捷開發(fā)

2020-02-24 08:58:46

數(shù)據(jù)架構技術

2012-08-29 14:00:23

2022-05-26 00:19:29

通信信息5G

2022-03-31 18:59:43

數(shù)據(jù)庫InnoDBMySQL

2023-06-30 08:18:51

敏捷開發(fā)模式
點贊
收藏

51CTO技術棧公眾號