国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

二、怎么簡單使用vuex

這篇具有很好參考價(jià)值的文章主要介紹了二、怎么簡單使用vuex。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

前提步驟:

1、 搭建一個(gè)vue2項(xiàng)目
2、 修改App.vue文件;修改App.vue組件里面引入的子組件內(nèi)容(在src文件夾下新建pages文件夾,新建index.vue頁面,以供使用);

正式開始vuex的相關(guān)操作:

一、安裝vuex:

npm install vuex --save

注意,以上的命令安裝的會(huì)是最新版本的。如果沒有指定版本,npm會(huì)默認(rèn)獲取最新版本。但是vue2.0只能安裝vuex3.x版本,最高3.6.2,vue3.0才能裝vuex4.x版本。因此如果是vue2項(xiàng)目要指定版本:

npm install vuex@3.6.2 --save

二、項(xiàng)目配置VUEX:

項(xiàng)目src目錄下創(chuàng)建store目錄,并在store下創(chuàng)建index.js,初始化Vuex。

Store文件夾中主要js如下:
二、怎么簡單使用vuex,# vuex,# 2023面試準(zhǔn)備,vue,vue,vue.js


三、創(chuàng)建相關(guān)文件:

1、state

概念:
state:存儲(chǔ)應(yīng)用狀態(tài)數(shù)據(jù)的對(duì)象,與vue中data類似

步驟:
(1)比如創(chuàng)建state.js文件的內(nèi)容如下:

export default {
    state1: "狀態(tài)1"
}

(2)在store文件夾下的index.js文件下引入:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

import state from '@/store/state.js'

const store = new Vuex.Store({
    // 用來存入狀態(tài)
    state: state
})

export default store

(3)接下來,將store掛載到vue實(shí)例中,在src文件夾下的main.js文件中添加:

import store from './store'
new Vue({
  …
  store,
}).$mount('#app')

最后代碼呈現(xiàn)如下:
二、怎么簡單使用vuex,# vuex,# 2023面試準(zhǔn)備,vue,vue,vue.js

(4)在組件中使用vuex??芍苯邮褂没蛘呤褂幂o助函數(shù)
1>直接使用:this.$store.state.xxx


<template>
    <div>
        狀態(tài)數(shù)據(jù)1:{{this.$store.state.state1}}
	</div>
</template>

2>使用輔助函數(shù):mapState

<template>
    <div>
        狀態(tài)數(shù)據(jù)1:{{state1}}
    </div>
</template>

<script>
   import { mapState } from 'vuex'
    export default {
       computed:{
           ...mapState(['state1']) // 使用對(duì)象展開運(yùn)算符將此對(duì)象混入到外部對(duì)象中
       }
       // 沒使用對(duì)象展開運(yùn)算符的寫法為:
       // computed: mapState(['state1'])
    }
</script>

2、getters

概念:
getters: 類似vue的計(jì)算屬性,store中數(shù)據(jù)的變化,getters的數(shù)據(jù)也會(huì)發(fā)生變化

步驟:
(1)創(chuàng)建getters.js文件內(nèi)容可如下:

export default {
  numSum:(state)=>{
    var sum=0;
    for(var i=0; i<state.numbers.length; i++){
      sum +=state.numbers[i]
    }
    return sum;
  }
}

(2)在store文件夾下的index.js文件下引入(參照引入state.js)
(3)將store掛載到vue實(shí)例中(state已經(jīng)實(shí)現(xiàn)了這步操作)
(4)在組件中使用(參考state里面數(shù)據(jù)的使用,使用輔助函數(shù)mapGetters也類似)


3、mutations

概念:
mutations: 提交mutation來修改store中的狀態(tài),同步操作

步驟:
(1)創(chuàng)建mutations.js文件內(nèi)容可如下:

export default {
    mutEditStat1(state){
        state.state1 = '狀態(tài)111改變了'
    }
}

(2)在store文件夾下的index.js文件下引入(參照引入state.js)
(3)將store掛載到vue實(shí)例中(state已經(jīng)實(shí)現(xiàn)了這步操作)
(4)在組件中使用:
1>直接使用:

<template>
    <div>
        {{state1}}
        <button @click="update1()">點(diǎn)擊改變狀態(tài)</button>
    </div>
</template>

<script>
    export default {
        methods: {
            update1(){
               this.$store.commit('mutEditStat1') // 喚醒一個(gè) mutation 處理函數(shù)mutEditStat1
            }
        }
    }
</script>

2>使用mapMutations輔助函數(shù):

<template>
    <div>
        {{state1}}
        <button @click="update1()">點(diǎn)擊改變狀態(tài)</button>
    </div>
</template>

<script>
import { mapMutations } from 'vuex'
    export default {
        methods: {
			...mapMutations(['mutEditStat1']),  
            update1(){
               this.mutEditStat1()
			 }
        }
    }
</script>

若帶有參數(shù),
Mutations文件內(nèi)容可如下:

export default {
    mutEditStat2(state,req){
	    state.state2="狀態(tài)2" + req;
	}
}

其它內(nèi)容和無參數(shù)的內(nèi)容一樣,只是在用的時(shí)候傳參:

update3(){
    this.mutEditStat2('傳參過來的')
}

4、actions

概念:

actions:與mutations類似,提交修改state的行為,處理異步任務(wù)(提交的是mutation,不是直接修改狀態(tài))

步驟:
(1)創(chuàng)建ations.js文件內(nèi)容可如下:

export default {
    actEditStat1(context){
        setTimeout(()=>{
            context.commit("mutEditStat1")
        }, 3000)  //我們此時(shí)就可以在 action 內(nèi)部執(zhí)行異步操作了,解決mutation 必須同步執(zhí)行的問題
    }
	// 帶參數(shù)
	actEditStat1(context,num){
	      setTimeout(()=>{
	        context.commit("mutEditStat1")
	      }, 3000)
	    console.log(num)
	}

}

(2)在store文件夾下的index.js文件下引入(參照引入state.js)
(3)將store掛載到vue實(shí)例中(state已經(jīng)實(shí)現(xiàn)了這步操作)
(4)在組件中使用:
1>直接使用:

<template>
    <div>
        {{state1}}
        <button @click="update()">actions提交mutation更新狀態(tài)</button>

    </div>
</template>

<script>
    export default {
        methods: {
         update(){
			this.$store.dispatch('actEditStat1') //分發(fā) Action。Action 通過 store.dispatch 方法觸發(fā)
			// 若是帶參數(shù):
			// this.$store.dispatch('actEditStat1',22)
          }
        }
    }
</script>

使用mapActions輔助函數(shù):

<template>
    <div>
        {{state1}}
        <button @click="update1()">點(diǎn)擊改變狀態(tài)</button>
    </div>
</template>

<script>
import { mapActions } from 'vuex'
    export default {
        methods: {
			...mapActions(['actEditStat1']),  // `this.mutEditStat1()` 映射為 `this.$store.commit('mutEditStat1')`
            update1(){
               this.actEditStat1()
 			}
        }
    }
</script>

注意: mutation 必須是同步函數(shù)

輔助函數(shù)總結(jié):

mapState和mapGetters寫在computed中,mapMutations和mapActions寫在methods中


5、modules

概念:

modules:模塊化狀態(tài)管理,為了開發(fā)大型項(xiàng)目,方便狀態(tài)管理而使用的
使用后目錄大概如下:
二、怎么簡單使用vuex,# vuex,# 2023面試準(zhǔn)備,vue,vue,vue.js

模塊內(nèi)內(nèi)容沒變化,主要需要修改的index.js文件內(nèi)容:

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

import userInfo from '@/store/modules/userInfo.js'
import shopCart from '@/store/modules/shopCart.js'

export default new Vuex.Store({
  state: {},
  getters: {},
  mutations: {},
  actions: {},
  modules:{
    userInfo,
    shopCart
  }
})

shopCart.js文件內(nèi)容:

import state from '@/store/modules/shopCart/state.js'
import getters from '@/store/modules/shopCart/getters.js'
import mutations from '@/store/modules/shopCart/mutations.js'
import actions from '@/store/modules/shopCart/actions.js'

export default {
  namespaced: true, //開啟命名空間

  state:state, 

  getters: getters, 

  mutations: mutations, 

  actions: actions
}

userInfo.js文件內(nèi)容類似。自行修改。

組件中使用示例1:

export default {
  methods: {
    login(){
      if(this.$store.state.userInfo.isLogin){ // modules中直接使用state: this.$store.state.模塊名.xxx;
        this.$store.commit('userInfo/logout'); // modules中直接使用mutations:this.$store.commit('模塊名/mutation名', 參數(shù));
      }else{
        this.$store.commit('userInfo/login');
      }
    }
  },
}

示例2:

computed:{
  	// modules中使用mapState輔助函數(shù):
	// computed: { 
	//       ...mapState('模塊名', ['xxx']), 
	//       ...mapState('模塊名', {'新名字': 'xxx'})
	// }
    ...mapState({ 
      userInfo:state=>state.userInfo
    })

  },

示例3:文章來源地址http://www.zghlxwxcb.cn/news/detail-730935.html

 computed:{
 	// modules中使用mapGetters輔助函數(shù):
	// computed: { 
	//       ...mapGetters('模塊名', ['xxx']), 
	//       ...mapGetters('模塊名', {'新名字': 'xxx'})
	// }
    ...mapGetters("shopCart", {   // 對(duì)象形式 
      countGoods: "countGoods"
    }),
  },

到了這里,關(guān)于二、怎么簡單使用vuex的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • vuex前端開發(fā),getters是什么?怎么調(diào)用?簡單的案例操作

    vuex前端開發(fā),getters是什么?怎么調(diào)用?簡單的案例操作

    vuex前端開發(fā),getters是什么?怎么調(diào)用?簡單的案例操作! 下面通過一些簡單的案例,來了解一下,vuex當(dāng)中的getters到底是什么意思,有哪些實(shí)際的操作案例。 Vuex的getters主要用于對(duì) store中的state進(jìn)行計(jì)算或過濾 ,類似于Vue組件中的 計(jì)算屬性 。它可以對(duì)state進(jìn)行一些處理,然后

    2024年01月19日
    瀏覽(24)
  • 2023JAVA 面試題全集(超全面!超系統(tǒng)!超實(shí)用!)早做準(zhǔn)備,早上岸!

    2023JAVA 面試題全集(超全面!超系統(tǒng)!超實(shí)用?。┰缱鰷?zhǔn)備,早上岸!

    大家好,最近有不少小伙伴在后臺(tái)留言,近期的面試越來越難了,要背的八股文越來越多了,考察得越來越細(xì),越來越底層,明擺著就是想讓我們徒手造航母嘛!實(shí)在是太為難我們這些程序員了。 這不,為了幫大家節(jié)約時(shí)間,給大家搞來了今年上半年碰到的大廠 Java 面試題合

    2024年02月08日
    瀏覽(21)
  • Linux下安裝Elasticsearch(1),面試字節(jié)跳動(dòng)Linux運(yùn)維工程師該怎么準(zhǔn)備

    Linux下安裝Elasticsearch(1),面試字節(jié)跳動(dòng)Linux運(yùn)維工程師該怎么準(zhǔn)備

    network.host: 0.0.0.0 # 綁定到0.0.0.0,允許任何ip來訪問 我們把data和logs目錄修改指向了elasticsearch的安裝目錄。但是這兩個(gè)目錄并不存在,因此我們需要?jiǎng)?chuàng)建出來。 進(jìn)入elasticsearch的根目錄,然后創(chuàng)建: mkdir data mkdir logs 目前我們是做的單機(jī)安裝,如果要做集群,只需要在這個(gè)配置

    2024年04月25日
    瀏覽(23)
  • Vue3中簡單使用Mock.js

    Vue3中簡單使用Mock.js

    mock.js簡介 ? 官方鏈接:Mock.js (mockjs.com) ????????前端開發(fā)人員用來模擬虛擬數(shù)據(jù),攔截ajax請(qǐng)求,方便模擬后端接口 安裝 使用 ????????本文主要介紹在Vue項(xiàng)目中使用mock.js,包括axios發(fā)送請(qǐng)求與請(qǐng)求簡單封裝 創(chuàng)建mock文件夾,新建index.js文件 ? ? ? ? 模擬數(shù)據(jù)可自己手動(dòng)

    2024年02月02日
    瀏覽(24)
  • vuex是什么?怎么使用?哪種功能場景使用它?

    Vuex是Vue.js官方推薦的狀態(tài)管理庫,用于在Vue應(yīng)用程序中管理和共享狀態(tài)。它基于Flux架構(gòu)和單向數(shù)據(jù)流的概念,將應(yīng)用程序的狀態(tài)集中管理,使得狀態(tài)的變化更可追蹤、更易于管理。Vuex提供了一個(gè)全局的狀態(tài)樹,以及一些用于修改狀態(tài)的方法。 使用Vuex的一般步驟如下: 安裝

    2024年01月17日
    瀏覽(15)
  • 【Vue】使用print.js插件實(shí)現(xiàn)打印預(yù)覽功能,超簡單

    【Vue】使用print.js插件實(shí)現(xiàn)打印預(yù)覽功能,超簡單

    目錄 一、實(shí)現(xiàn)效果 ?二、實(shí)現(xiàn)步驟 【1】安裝插件 【2】在需要打印的頁面導(dǎo)入 【3】在vue文件中需要打印的部分外層套一層div,給div設(shè)置id。作為打印的區(qū)域 【4】在打印按鈕上添加打印事件 【5】在methods中添加點(diǎn)擊事件 三、完整代碼 ? print.js插件,可以打印html、pdf、json數(shù)

    2024年02月14日
    瀏覽(24)
  • Vue.js 3.x Composition APIs 及簡單使用

    Vue.js 3.x Composition APIs 及簡單使用

    源碼組織方式的變化 Composition API 性能提升 Vite 源碼全部采用 TS 重寫,組織方式也發(fā)生變化,使用 Monorepo 的方式來組織項(xiàng)目的結(jié)構(gòu),把獨(dú)立的功能模塊都提取到不同的包中。 雖然重寫,但是 90% 都兼容 2.x 的API,根據(jù)社區(qū)反饋,增加了 Composition API,組合式API,旨在解決開發(fā)超

    2024年02月08日
    瀏覽(19)
  • vue~vuex的使用

    Vuex 和本地存儲(chǔ)(如 localStorage )以及 cookie 存儲(chǔ)(如 document.cookie )之間有一些關(guān)系,但它們是不同的概念,用于不同的目的。 Vuex : Vuex 是 Vue.js 的官方狀態(tài)管理庫,用于在 Vue.js 應(yīng)用程序中管理應(yīng)用程序的全局狀態(tài)。 Vuex 主要用于在前端應(yīng)用程序中存儲(chǔ)和管理各種狀態(tài),包

    2024年02月09日
    瀏覽(15)
  • 【Vue】使用 Vuex 作為狀態(tài)管理

    【Vue】使用 Vuex 作為狀態(tài)管理

    Vuex 是一個(gè)專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式和庫。它使用單一狀態(tài)樹,這意味著這個(gè)對(duì)象包含了全部的應(yīng)用層級(jí)狀態(tài),并且以一種相對(duì)集中的方式存在。這也意味著,通常單個(gè)項(xiàng)目中只有一個(gè) Vuex store。Vuex 的核心概念和功能包括: 狀態(tài)(State) :Vuex 使用單一狀態(tài)樹

    2024年01月23日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包