国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Vuex 入門到進(jìn)階

mylxsw / 2226人閱讀

先說(shuō)一下Vuex到底是什么?
Vuex 是一個(gè)專門為 vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式

這個(gè)狀態(tài)我們可以理解為在 data 中的屬性,需要共享給其他組件使用的部分

也就是說(shuō),我們需要共享的數(shù)據(jù),可以使用 vuex 進(jìn)行統(tǒng)一集中式的管理

喜歡看代碼學(xué)習(xí)的的可直接下載下方 Demo
https://gitee.com/jiangliyue/...
Vuex中的五種基本對(duì)象

state:存儲(chǔ)狀態(tài)(變量)

getters:對(duì)數(shù)據(jù)獲取之前的再次編譯,可以理解為 state 的計(jì)算屬性,我們?cè)诮M件中使用 $store.getters.fun() 調(diào)用

mutations:修改狀態(tài),并且是同步的。在組件中使用 $store.commit("操作名",params) 調(diào)用

actions:異步操作。在組件中使用 $store.dispatch("操作名") 調(diào)用

modules:store 的子模塊,為了開發(fā)大型項(xiàng)目,方便狀態(tài)管理而使用的,使用方法和上面一樣

// 常見vuex初始化配置
import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex)

export default new Vuex.Store({
    state: {
        msg: "hello ",
        username: ""
    },
    getters: {},
    mutations: {},
    actions: {},
    modules: {}
})
在項(xiàng)目中使用 Vuex
將上面初始化的 Vuex 對(duì)象引入到 main.js 文件中
// 引入store
import store from "@/store/index"
new Vue({
    store,
    render: h => h(App)
}).$mount("#app")
在組件中使用


現(xiàn)在我們已經(jīng)可以使用 Vuex 中的 state 了,接下來(lái)我們看看如何操作這個(gè)屬性
Vuex 提供了 mutations 和 actions 兩種方法來(lái)操作 state

mutations(同步操作)

定義 mutations 對(duì)象里的方法,方法里面的參數(shù),第一個(gè)默認(rèn)為 state,第二個(gè)為自定義傳入?yún)?shù)。
/**
 * mutations 里面放置的是我們操作state對(duì)象屬性的方法
 */
const mutations = {
    setMsg(state, name) {
        state.msg = "hellow" + name
    }
}
export default new Vuex.Store({
    state,
    mutations
})
組件中使用 Vuex 提供的 commit 方法調(diào)用 mutations 中我們自定義的方法
created() {
    this.setSayMsg("your Name")  
},
methods: {
    setSayMsg(name) {
      this.$store.commit("setMsg",name)
    }
}

效果如何大家自行實(shí)驗(yàn)哈~

actions(異步操作)

定義 actions 對(duì)象里的方法,方法里面的參數(shù),第一個(gè)是context,它是一個(gè)和 store 對(duì)象具有相同對(duì)象屬性的參數(shù),第二個(gè)為自定義傳入?yún)?shù)。  
通常當(dāng)我們需要修改多個(gè)狀態(tài)或者說(shuō)調(diào)用多個(gè) mutations 里的方法時(shí)會(huì)用到 actions
/**
 * actions 里面放置的是我們調(diào)用store對(duì)象的方法
 */
const actions = {
    // 常規(guī)寫法
    // actionsSetMsg(context, name) {
    //    context.commit("setMsg", name)
    // }
    // 簡(jiǎn)化寫法
    actionsSetMsg({ commit }, name) {
        commit("setMsg", name)
    }
}
export default new Vuex.Store({
    state,
    actions
})
組件中使用 Vuex 提供的 dispatch 方法調(diào)用 actions 中我們自定義的方法
created() {
    this.actionsSetSayMsg("your Name")  
},
methods: {
    actionsSetSayMsg(name) {
        this.$store.dispatch("actionsSetMsg",name)
    }
}
最后是 getters,我們一般使用 getters 來(lái)獲取我們的 state,因?yàn)樗闶?state 的一個(gè)計(jì)算屬性,相當(dāng)于實(shí)時(shí)監(jiān)聽狀態(tài)變化
定義 getters 對(duì)象里的方法
const getters = {
    getMsg(state) {
        return state.msg
    }
}
export default new Vuex.Store({
    state,
    getters
})
組件中使用
computed: {
    msg() {
        return this.$store.getters.getMsg
    }
}

看到這里如果上面的用法都能理解,那恭喜你的 Vuex 已經(jīng)學(xué)的很好了!

接下來(lái)的是官方提供給我們使用 Vuex 的一些小技巧

mapState

mapMutations

mapActions

mapGetters

需要明確的是,這些方法只是方便我們書寫,重點(diǎn)還是上面的基礎(chǔ)部分

這部分用到了 es6 的擴(kuò)展運(yùn)算符,不熟悉的同學(xué)自行百度吧,還是蠻有用的

用法還是看下面代碼直接點(diǎn),主要記住2點(diǎn)

引入都用到擴(kuò)展運(yùn)算符,即3個(gè)點(diǎn) "..." ,方式則為下面 2種模板任選一種

...mapState({
    你在該頁(yè)面想用的變量名: "你state對(duì)象里定義的屬性或方法名"
})
// 或者傳入一個(gè)數(shù)組,此時(shí)當(dāng)前組件調(diào)用的變量名與state中定義的方法名一致
...mapState(["你state對(duì)象里定義的屬性或方法名"])

另外記住 ...mapState({...}) 和 ...mapGetters({...}) 放在 computed 計(jì)算屬性里, ...mapMutations({...}) 和 ...mapActions({...})放在methods 方法屬性里就可以了

Demo Git 地址
https://gitee.com/jiangliyue/...


最后,如果大家發(fā)現(xiàn)有什么問(wèn)題,或者錯(cuò)誤的地方,歡迎留言交流。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/105341.html

相關(guān)文章

  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    sutaking 評(píng)論0 收藏0
  • 關(guān)于Vue2一些值得推薦的文章 -- 五、六月份

    摘要:五六月份推薦集合查看最新的請(qǐng)點(diǎn)擊集前端最近很火的框架資源定時(shí)更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語(yǔ)。葉上初陽(yáng)乾宿雨,水面清圓,一一風(fēng)荷舉。家住吳門,久作長(zhǎng)安旅。五月漁郎相憶否。小楫輕舟,夢(mèng)入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請(qǐng)::點(diǎn)擊::集web前端最近很火的vue2框架資源;定時(shí)更新,歡迎 Star 一下。 蘇...

    khs1994 評(píng)論0 收藏0
  • ES6入門進(jìn)階(二):循環(huán)、數(shù)組、對(duì)象

    摘要:優(yōu)點(diǎn)按需加載可以寫中路徑也可以動(dòng)態(tài)加以后默認(rèn)就是嚴(yán)格模式,默認(rèn)嚴(yán)格模式完參考視頻資料經(jīng)典入門到進(jìn)階 上一篇:ES6入門到進(jìn)階(一):let、解構(gòu)賦值、字符串模板、函數(shù) 一、循環(huán) ES5里面新增一些東西 1.1 arr.forEach()(常用) 1. for for(let i=0; i [{t:aaaa}] let arr = [ ...

    JerryZou 評(píng)論0 收藏0
  • web前端工程師進(jìn)階指南

    摘要:進(jìn)階的知識(shí)的話就是響應(yīng)式這一塊了,一套代碼能適配手機(jī)是初級(jí)前端工程師的進(jìn)階,在北京工資一般在左右。進(jìn)階的知識(shí)應(yīng)該是這一塊了,當(dāng)然并不難,了解怎么與后臺(tái)交互是學(xué)習(xí)的關(guān)鍵點(diǎn),在北京的工資一般在左右。 web前端?如果你是一名web前端工程師,那么你將感到幸運(yùn),從之前的默默無(wú)聞,到后來(lái)的給后臺(tái)工程師打下手,再到巔峰一時(shí)。web前端可謂是當(dāng)下最火的職位之一。 showImg(https://s...

    曹金海 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<