最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vuex的核心概念和基本使用詳解

 更新時(shí)間:2021年12月14日 16:28:50   作者:前端Bin  
這篇文章主要為大家介紹了vuex的核心概念和基本使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

介紹

Vuex是實(shí)現(xiàn)組件全局狀態(tài)(數(shù)據(jù))管理的一種機(jī)制,可以方便的實(shí)現(xiàn)組件之間的數(shù)據(jù)共享

開始

安裝

①直接下載方式

創(chuàng)建一個(gè) vuex.js 文件 將https://unpkg.com/vuex這個(gè)網(wǎng)址里的內(nèi)容放到該文件夾里。

②CND方式

<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.js"></script>

③NPM方式

npm install vuex --save

④Yarn方式

yarn add vuex

NPM方式安裝的使用方式

1.在 scr 文件里創(chuàng)建一個(gè) store / index.js 的文件夾,寫入以下內(nèi)容。

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export default new Vuex.Store({
state: {},
mutations: {},
actions: {},
modules: {}
})

2.在main.js 里引入,然后掛載到 Vue 實(shí)例里

import Vue from 'vue'
import store from './store'
new Vue({
  render: h => h(App),
  store
}).$mount('#app')

store概念及使用

概念:

就是組件之間共享數(shù)據(jù)的。

只有 mutations 才能修改 store 中的數(shù)據(jù)

使用:

先定義后使用

定義

state: {
  num: 0
}

使用

方式1(推薦)

<div>{{ numAlias }}</div>

import { mapState } from 'vuex'
export default {
  //計(jì)算函數(shù)
  computed: mapState({
    // 傳字符串參數(shù) 'count' 等同于 `state => state.count`
    numAlias: 'num',//常用key是自己起的名隨便 value接收的數(shù)據(jù)
    // 箭頭函數(shù)可使代碼更簡(jiǎn)練
    count: state => state.count,
    // 為了能夠使用 `this` 獲取局部狀態(tài),必須使用常規(guī)函數(shù)
    countPlusLocalState (state) {
      return state.count + this.localCount
    }
    //可以定義其余的計(jì)算函數(shù)
  }),
  //或者這樣
  //計(jì)算函數(shù)
  computed: {
    mapState(['count'])
  }
}

方式2

<div>{{ $store.state.count }}</div>

mutations概念及使用

概念:

修改store里的數(shù)據(jù),嚴(yán)格規(guī)定不能在其余的地方修改store的數(shù)據(jù),mutations里不要執(zhí)行異步操作。

mutation 必須同步執(zhí)行,不能異步執(zhí)行。

使用:

先定義方法后使用

定義

mutations: {
	//increment自定義方法 store參數(shù)是store數(shù)據(jù), parameter參數(shù)是接收到的數(shù)據(jù),可不要
    increment (state, parameter) {
        // 變更狀態(tài)
        state.num++
    }
}

使用

方式1(推薦使用)

import { mapState, mapMutations } from 'vuex'
//方法
methods: {
	...mapMutations([
	    // mutations自定義的方法名
    	'increment'
    ]),
    love() {
    	// 直接this調(diào)用 this.increment('需要傳過(guò)去的數(shù)據(jù),可不要')
        this.increment('Bin')
    }
}

方式2

methods: {
    love() {
    	// this.$store.commit('自定義的名稱', '傳過(guò)去的數(shù)據(jù),可不傳')
    	this.$store.commit('increment', 'data')
    }
}

action概念及使用

概念:

用于處理異步操作。

如果通過(guò)異步操作變更數(shù)據(jù),必須通過(guò)action,而不能使用mutation,但是在action中還是要通過(guò)觸發(fā)mutation的方式間接變更數(shù)據(jù)。

Action 類似于 mutation,不同在于:

  • Action 提交的是 mutation,而不是直接變更數(shù)據(jù)(狀態(tài))。
  • Action 可以包含任意異步操作。

定義

mutations: {
	//increment自定義方法 store參數(shù)是store數(shù)據(jù), parameter參數(shù)是接收到的數(shù)據(jù),可不要
    increment (state, parameter) {
        // 變更狀態(tài)
        state.num++
    }
},
actions: {
	//add 自定義方法 context是參數(shù),可以把它當(dāng)作vuex的實(shí)例
    add(context) {
    	//可以通過(guò)context.commit('mutations中需要調(diào)用的方法')
    	context.commit('increment')
    }
}

使用

方式1(推薦)

import { mapState, mapMutations, mapActions } from 'vuex'
export default {
  methods: {
    ...mapActions([
      'add', // 將 `this.add()` 映射為 `this.$store.dispatch('add')`
      // `mapActions` 也支持載荷:
      'add' // 將 `this.add(amount)` 映射為 `this.$store.dispatch('add', amount)`
    ]),
    ...mapActions({
      add: 'add' // 將 `this.add()` 映射為 `this.$store.dispatch('increment')`
    }),
    love() {
    	// 直接this調(diào)用 this.add('需要傳過(guò)去的數(shù)據(jù),可不要')
    	this.add(data)
    }
  }
}

方式2

methods: {
    love() {
    	// this.$store.dispatch('自定義的名稱', '傳過(guò)去的數(shù)據(jù),可不傳')
    	this.$store.dispatch('add', data)
    }
}

getters概念及使用

概念:

getter用于對(duì)store中的數(shù)據(jù)進(jìn)行加工處理形成新的數(shù)據(jù)。getting可以對(duì)store中已有的數(shù)據(jù)加工處理之后形成新的數(shù)據(jù),類似Vue的計(jì)算縮寫。

定義

state: {
  num: 0
},
getters: {
    doneTodos: state => {
    	return state.num = 10
    }
}

使用

方式1(推薦)

<div>{{ doneTodos }}</div>

import { mapState, mapMutations, mapActions, mapGetters } from 'vuex'
export default {
  //計(jì)算函數(shù)
  computed: {
  	...mapState(['count']),
  	...mapmapGetters(['doneTodos'])
  }
}

方式2

<div>{{ $store.getters.doneTodos }}</div>

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • iView框架問(wèn)題整理小結(jié)

    iView框架問(wèn)題整理小結(jié)

    這篇文章主要介紹了iView框架問(wèn)題整理小結(jié),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • vue如何使用element ui表格el-table-column在里面做判斷

    vue如何使用element ui表格el-table-column在里面做判斷

    這篇文章主要介紹了vue如何使用element ui表格el-table-column在里面做判斷問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue+electron 自動(dòng)更新的實(shí)現(xiàn)代碼

    vue+electron 自動(dòng)更新的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue+electron 自動(dòng)更新的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-02-02
  • intellij?idea+vue前端調(diào)試配置圖文教程

    intellij?idea+vue前端調(diào)試配置圖文教程

    在Vue項(xiàng)目開發(fā)過(guò)程中,當(dāng)遇到應(yīng)用邏輯出現(xiàn)錯(cuò)誤,但又無(wú)法準(zhǔn)確定位的時(shí)候,知曉Vue項(xiàng)目調(diào)試技巧至關(guān)重要,debug是必備技能,這篇文章主要給大家介紹了關(guān)于intellij?idea+vue前端調(diào)試配置的相關(guān)資料,需要的朋友可以參考下
    2024-09-09
  • Vue?echarts實(shí)例項(xiàng)目商家銷量統(tǒng)計(jì)圖實(shí)現(xiàn)詳解

    Vue?echarts實(shí)例項(xiàng)目商家銷量統(tǒng)計(jì)圖實(shí)現(xiàn)詳解

    Echarts,它是一個(gè)與框架無(wú)關(guān)的?JS?圖表庫(kù),但是它基于Js,這樣很多框架都能使用它,例如Vue,估計(jì)IONIC也能用,因?yàn)槲业牧?xí)慣,每次新嘗試做一個(gè)功能的時(shí)候,總要新創(chuàng)建個(gè)小項(xiàng)目,做做Demo
    2022-09-09
  • vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問(wèn)題

    vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問(wèn)題

    這篇文章主要介紹了vue定時(shí)器清除不掉,導(dǎo)致功能頻繁執(zhí)行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法

    Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法

    這篇文章主要介紹了Vue+axios實(shí)現(xiàn)統(tǒng)一接口管理的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • Vue3.0的優(yōu)化總結(jié)

    Vue3.0的優(yōu)化總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于Vue3.0的優(yōu)化總結(jié)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-10-10
  • Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍

    Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍

    后臺(tái)項(xiàng)目想使用時(shí)間選擇器選擇一段時(shí)間進(jìn)行數(shù)據(jù)篩選,所以下面這篇文章主要給大家介紹了關(guān)于Vue2中Element?DatePicker組件設(shè)置默認(rèn)日期及控制日期范圍的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • 媒體查詢media不生效的原因及解決

    媒體查詢media不生效的原因及解決

    媒體查詢@media常見的不生效原因包括格式書寫錯(cuò)誤,例如and后必須有空格;樣式?jīng)_突,后面的CSS會(huì)覆蓋前面的;CSS本身存在問(wèn)題,比如塊元素浮動(dòng)導(dǎo)致父級(jí)元素?zé)o高度而背景顏色不顯示;漏掉了meta屬性中的viewport屬性,正確書寫和排列CSS代碼
    2024-10-10

最新評(píng)論

永定县| 绥宁县| 永善县| 永平县| 浦北县| 厦门市| 醴陵市| 霍林郭勒市| 云和县| 镇安县| 商洛市| 泰兴市| 巴林左旗| 鄂温| 遵化市| 名山县| 扶绥县| 甘泉县| 新平| 额济纳旗| 镇坪县| 澄江县| 平江县| 桂林市| 延津县| 庆城县| 宣汉县| 博罗县| 桐城市| 内丘县| 天峻县| 大方县| 江陵县| 临潭县| 东兴市| 张北县| 刚察县| 浦城县| 夹江县| 琼中| 鲁山县|