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

為什么要使用Vuex的介紹

 更新時間:2019年01月19日 08:39:47   作者:muzidigbig  
今天小編就為大家分享一篇關于為什么要使用Vuex的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

單向數(shù)據(jù)流

以下是一個表示“單向數(shù)據(jù)流”理念的極簡示意:

但是,當我們的應用遇到多個組件共享狀態(tài)時,單向數(shù)據(jù)流的簡潔性很容易被破壞:

  • - 多個視圖依賴于同一狀態(tài)。
  • - 來自不同視圖的行為需要變更同一狀態(tài)。

對于問題一,傳參的方法對于多層嵌套的組件將會非常繁瑣,并且對于兄弟組件間的狀態(tài)傳遞無能為力。

對于問題二,我們經(jīng)常會采用父子組件直接引用或者通過事件來變更和同步狀態(tài)的多份拷貝。以上的這些模式非常脆弱,通常會導致無法維護的代碼。

因此,我們?yōu)槭裁床话呀M件的共享狀態(tài)抽取出來,以一個全局單例模式管理呢?在這種模式下,我們的組件樹構成了一個巨大的“視圖”,不管在樹的哪個位置,任何組件都能獲取狀態(tài)或者觸發(fā)行為!

另外,通過定義和隔離狀態(tài)管理中的各種概念并強制遵守一定的規(guī)則,我們的代碼將會變得更結(jié)構化且易維護。

這就是 Vuex 背后的基本思想,借鑒了 Flux、Redux、和 The Elm Architecture。與其他模式不同的是,Vuex 是專門為 Vue.js 設計的狀態(tài)管理庫,以利用 Vue.js 的細粒度數(shù)據(jù)響應機制來進行高效的狀態(tài)更新。

什么情況下應該使用 Vuex?

雖然 Vuex 可以幫助我們管理共享狀態(tài),但也附帶了更多的概念和框架。這需要對短期和長期效益進行權衡。

如果您不打算開發(fā)大型單頁應用,使用 Vuex 可能是繁瑣冗余的。確實是如此——如果您的應用夠簡單,您最好不要使用 Vuex。一個簡單的 global event bus 就足夠您所需了。但是,如果您需要構建是一個中大型單頁應用,您很可能會考慮如何更好地在組件外部管理狀態(tài),Vuex 將會成為自然而然的選擇。引用 Redux 的作者 Dan Abramov 的話說就是:

Flux 架構就像眼鏡:您自會知道什么時候需要它。

如果沒有使用Vuex

假設有這樣的兩個頁面,數(shù)據(jù)一樣,就是頁面布局不一樣:

代碼

Page1.vue

<template>
  <div>
    <h2>我是第一個頁面</h2>
    <ul class="ul_list">
      <li v-for="item in items">
        <p class="name">商品:{{item.name}}</p>
        <p class="price">價格:¥{{item.price}}</p>
      </li>
    </ul>
  </div>
</template>
<script>
 export default {
   data() {
    return {
        items: [
          {
            name: '贛州橙子',
            price: '8.8'
          },
          {
            name: '新疆哈密瓜',
            price: '2.0'
          },
          {
            name: '山東大棗',
            price: '3.2'
          },
          {
            name: '陽澄湖大閘蟹',
            price: '10.0'
          }
        ]
    }
   },
  }
</script>

Page2.vue

<template>
  <div>
    <h2>我是第二個頁面</h2>
    <ul class="ul_list page2">
      <li v-for="item in items">
        <p class="name">商品:{{item.name}}</p>
        <p class="price">價格:¥{{item.price}}</p>
      </li>
    </ul>
  </div>
</template>
<script>
 export default {
   data() {
    return {
        items: [
          {
            name: '贛州橙子',
            price: '8.8'
          },
          {
            name: '新疆哈密瓜',
            price: '2.0'
          },
          {
            name: '山東大棗',
            price: '3.2'
          },
          {
            name: '陽澄湖大閘蟹',
            price: '10.0'
          }
        ]
    }
   },
  }
</script>

現(xiàn)在我們可以看見上面兩個頁面里面的數(shù)據(jù)是一樣的。同一份數(shù)據(jù),我們在兩個頁面里面操作兩次感覺還行,如果有10個,20個 ……頁面需要這樣,那么這就是一個讓人奔潰的事情,而且數(shù)據(jù)的同步刷新也很痛苦。所以就需要Vuex了。簡言之:vuex就是將數(shù)據(jù)共享給多個組件共同使用,同時也將這個數(shù)據(jù)的狀態(tài)進行了共享(一個組件改變這個數(shù)據(jù)的狀態(tài)其它組件也跟著改變)。

Vue官網(wǎng)對Vuex的解釋:

每一個 Vuex 應用的核心就是 store(倉庫)?!皊tore”基本上就是一個容器,它包含著你的應用中大部分的狀態(tài) (state)。Vuex 和單純的全局對象有以下兩點不同:

  1. Vuex 的狀態(tài)存儲是響應式的。當 Vue 組件從 store 中讀取狀態(tài)的時候,若 store 中的狀態(tài)發(fā)生變化,那么相應的組件也會相應地得到高效更新。
  2. 你不能直接改變 store 中的狀態(tài)。改變 store 中的狀態(tài)的唯一途徑就是顯式地提交 (commit) mutation。這樣使得我們可以方便地跟蹤每一個狀態(tài)的變化,從而讓我們能夠?qū)崿F(xiàn)一些工具幫助我們更好地了解我們的應用。

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內(nèi)容請查看下面相關鏈接

相關文章

  • Vue 2.0在IE11中打開項目頁面空白的問題解決

    Vue 2.0在IE11中打開項目頁面空白的問題解決

    這篇文章主要給大家介紹了關于Vue 2.0在ie 11中打開項目頁面空白問題的解決方法,文中詳細分析出現(xiàn)該問題的原因,并給出了詳細的解決方法,需要的朋友可以參考借鑒,下面跟著小編來一起學習學習吧。
    2017-07-07
  • Vue中computed和watch有哪些區(qū)別

    Vue中computed和watch有哪些區(qū)別

    這篇文章主要介紹了Vue中computed和watch有哪些區(qū)別,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下
    2020-12-12
  • vue中的數(shù)字滾動和翻牌器

    vue中的數(shù)字滾動和翻牌器

    這篇文章主要介紹了vue中的數(shù)字滾動和翻牌器,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue監(jiān)聽數(shù)組變化源碼解析

    Vue監(jiān)聽數(shù)組變化源碼解析

    這篇文章主要為大家詳細解析了Vue監(jiān)聽數(shù)組變化的源碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • Vue.js劃分組件的方法

    Vue.js劃分組件的方法

    這篇文章主要介紹了Vue.js劃分組件的方法,需要的朋友可以參考下
    2017-10-10
  • vue3.0安裝Element?ui及矢量圖使用方式

    vue3.0安裝Element?ui及矢量圖使用方式

    這篇文章主要介紹了vue3.0安裝Element?ui及矢量圖使用,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • vue封裝swiper代碼實例解析

    vue封裝swiper代碼實例解析

    這篇文章主要介紹了vue封裝swiper代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 前端H5微信支付寶支付實現(xiàn)方法(uniapp為例)

    前端H5微信支付寶支付實現(xiàn)方法(uniapp為例)

    最近上線一個項目,手機網(wǎng)站進行調(diào)起支付寶App支付,做起來還是滿順手的,在此做個記錄,這篇文章主要給大家介紹了關于前端H5微信支付寶支付實現(xiàn)方法的相關資料,需要的朋友可以參考下
    2024-04-04
  • vue開發(fā)實現(xiàn)評論列表

    vue開發(fā)實現(xiàn)評論列表

    這篇文章主要為大家詳細介紹了vue開發(fā)實現(xiàn)評論列表,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Vue獲取子組件實例對象ref屬性的方法推薦

    Vue獲取子組件實例對象ref屬性的方法推薦

    在Vue中我們可以使用ref屬性來獲取子組件的實例對象,這個功能非常方便,這篇文章主要給大家介紹了關于Vue獲取子組件實例對象ref屬性的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-06-06

最新評論

巴青县| 威信县| 水富县| 聊城市| 三明市| 崇左市| 临邑县| 新巴尔虎左旗| 安泽县| 驻马店市| 盈江县| 黔东| 澄江县| 延津县| 祁东县| 海盐县| 新宾| 余干县| 香港 | 绥棱县| 都匀市| 文昌市| 华坪县| 牙克石市| 洛川县| 泸定县| 松溪县| 陇川县| 滦南县| 团风县| 苏尼特右旗| 手游| 衡水市| 思茅市| 区。| 防城港市| 巴塘县| 隆安县| 惠安县| 沛县| 庐江县|