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

Vuex 在Vue 組件中獲得Vuex 狀態(tài)state的方法

 更新時間:2018年08月27日 14:28:24   作者:E_li_na  
今天小編就為大家分享一篇Vuex 在Vue 組件中獲得Vuex 狀態(tài)state的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Vuex使用單一狀態(tài)樹(一個對象就包含了全部的應用層級狀態(tài)),它作為唯一數據源存在,每個應用僅僅有一個store實例。

單一狀態(tài)樹使得我們能夠直接定位任一特定的狀態(tài)片段,在調試過程中也能輕易地取得整個當前應用狀態(tài)的快照。

在Vue組件中獲得Vuex狀態(tài)

Vuex的狀態(tài)存儲是相應式的。在Vue組件中獲取Vuex狀態(tài)總共有 五種 可行的方法。

1.從store實例中讀取狀態(tài)最簡單的方法就是在計算屬性中返回某個狀態(tài):(需要導入store組件)

const Counter={
 template:`<div>{{ count }}</div>`,
 computed:{
 count(){
  return store.state.count//返回store實例的count狀態(tài)
 }
 }
}

每當store.state.count發(fā)生變化,都會重新求取計算屬性,并且出發(fā)更新相關聯的DOM

缺點:這種模式導致組件依賴全局狀態(tài)單例。在每個需要state的組件中需要頻繁地導入,并且在測試組件時需要模擬狀態(tài)。

Vuex通過store選項,提供了一種機制將狀態(tài)從根組件注入到每一個子組件中,前提是要調用Vue.use(Vuex)

const app=new Vue({
 el:'#app',
 store,//根組件通過store選項將store實例注入所有地子組件
 components:{ Counter },
 template:`
 <div class="app">
  <Counter><Counter>
 </div>
 `
})

上面的代碼能夠讓子組件通過this.$store訪問到store實例。

2.于是,Counter組件可以按照下面的實現來訪問store,而不用頻繁導入state的組件。

const Counter={
 template:`<div>{{ counter }}</div>`,
 computed:{
 count(){
  return this.$state.count
 }
 }
}

mapState輔助函數(用于獲取多個state狀態(tài))

當一個組件需要獲取多個狀態(tài)的時候,將這些狀態(tài)都聲明為計算屬性會有些重復和冗余(如上面代碼的count函數),避免這個問題,

3.我們可以用mapState輔助函數幫助我們生成計算屬性,讓我們少敲幾個?。?/strong>

import { mapState } from 'vuex'
export default{
 computed:mapState({
 //方式一:箭頭函數
 count:state => state.count,
 //方式二:傳字符串參數
 countAlias:'count',
 //如果要使用this獲取局部狀態(tài),就要使用常規(guī)函數了!
 countPlusLocalState(state){
 return state.count+this.localCount
 }
 })
}

4.如果映射的計算屬性的名稱與state的子節(jié)點相同時,我們給mapState傳一個字符串數組。

computed:mapState([
 'count'
])

5.對象展開運算符

上面的3、4都是mapState單獨使用在computed屬性中,但是如果要和普通的局部計算屬性混合使用的時候,我們用對象展開運算符(…)

import { mapState,mapGetter } from 'vuex'
export default{
 methods:{
 increment(){
  this.$store.commit('increment');
 }
 },
 computed:{
 elsecomputed(){},//這是普通的局部計算屬性
 ...mapGetters([
  'count'
 ]),
 ...mapState({
  counts(){
   return this.$store.state.count;
  }
  }
 })
 }
}

并不需要把所有狀態(tài)都放到Vuex,有些狀態(tài)嚴格屬于單個組件,最好是作為組件的局部狀態(tài),要根據應用開發(fā)進行權衡和確定。

以上這篇Vuex 在Vue 組件中獲得Vuex 狀態(tài)state的方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    Vue.js 2.0 和 React、Augular等其他前端框架大比拼

    這篇文章主要介紹了Vue.js 2.0 和 React、Augular等其他前端框架大比拼的相關資料,React 和 Vue 有許多相似之處,本文給大家提到,需要的朋友可以參考下
    2016-10-10
  • vue3集成Element-plus實現按需自動引入組件的方法總結

    vue3集成Element-plus實現按需自動引入組件的方法總結

    vue3出來一段時間了,element也更新了版本去兼容vue3,下面這篇文章主要給大家介紹了關于vue3集成Element-plus實現按需自動引入組件的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • Vue3在router中使用pinia報錯的簡單解決辦法

    Vue3在router中使用pinia報錯的簡單解決辦法

    這篇文章主要給大家介紹了關于Vue3在router中使用pinia報錯的簡單解決辦法,什么是pinia,可以理解為狀態(tài)管理工具,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2023-08-08
  • vue的生命周期鉤子與父子組件的生命周期詳解

    vue的生命周期鉤子與父子組件的生命周期詳解

    Vue的生命周期就是vue實例從創(chuàng)建到銷毀的全過程,也就是new Vue() 開始就是vue生命周期的開始。Vue 實例有?個完整的?命周期,也就是從開始創(chuàng)建、初始化數據、編譯模版、掛載Dom -> 渲染、更新 -> 渲染、卸載 等?系列過程,稱這是Vue的?命周期
    2022-08-08
  • vuex分模塊后,實現獲取state的值

    vuex分模塊后,實現獲取state的值

    這篇文章主要介紹了vuex分模塊后,實現獲取state的值,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Vue-cli 使用json server在本地模擬請求數據的示例代碼

    Vue-cli 使用json server在本地模擬請求數據的示例代碼

    本篇文章主要介紹了Vue-cli 使用json server在本地模擬請求數據的示例代碼,非常具有實用價值,需要的朋友可以參考下
    2017-11-11
  • vue.js的安裝方法

    vue.js的安裝方法

    這篇文章主要為大家詳細介紹了vue.js的安裝方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Vue3 elementUI如何修改el-date-picker默認時間

    Vue3 elementUI如何修改el-date-picker默認時間

    這篇文章主要介紹了Vue3 elementUI如何修改el-date-picker默認時間,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue的template模板是如何轉為render函數的過程

    vue的template模板是如何轉為render函數的過程

    Vue從template到render函數的轉換經歷模板解析、AST構建、優(yōu)化、生成渲染函數等步驟,首先進行詞法分析將模板拆解為tokens,再進行語法分析構建AST,然后對AST進行靜態(tài)標記和提升優(yōu)化,最后轉換成JavaScript渲染函數,生成虛擬DOM,完成組件的渲染和更新,實現了模板的高效轉化
    2024-10-10
  • VUE中的v-if與v-show區(qū)別介紹

    VUE中的v-if與v-show區(qū)別介紹

    這篇文章介紹了VUE中v-if與v-show的區(qū)別,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-03-03

最新評論

栖霞市| 镇远县| 隆子县| 普洱| 盘山县| 清远市| 明光市| 台东县| 平果县| 伽师县| 宁阳县| 酒泉市| 射阳县| 五家渠市| 泸水县| 彰化县| 日照市| 子洲县| 曲沃县| 兴山县| 凤台县| 乐亭县| 泊头市| 苍南县| 柳州市| 吉林市| 岳普湖县| 苍梧县| 贵港市| 舞钢市| 巴林左旗| 梅河口市| 东莞市| 罗源县| 青海省| 延寿县| 西和县| 克什克腾旗| 乌什县| 光泽县| 商丘市|