<em id="09ttv"></em>
    <sup id="09ttv"><pre id="09ttv"></pre></sup>
    <dd id="09ttv"></dd>

        • vuex管理狀態倉庫詳解

          2020-7-22    seo達人

          一.什么是Vuex?

          Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。Vuex 也集成到 Vue 的官方調試工具 devtools extension,提供了諸如零配置的 time-travel 調試、狀態快照導入導出等高級調試功能。采用了全局單例模式,將組件的共享狀態抽離出來管理,使得組件樹中每一個位置都可以獲取共享的狀態或者觸發行為。
          那么什么是狀態呢?我把狀態理解為在沒有使用vuex時,在當前組件中data內需要共用的數據為狀態。
          vuex使得狀態或行為成為了共享的狀態,所共享的狀態或行為可以在各個組件中都可以訪問到,省去了子父或子子之間傳遞變量,提高了開發效率。

          二.不使用vuex時與使用vuex時的差別

          當我們不使用vuex時,對于組件之間傳遞信息會較為麻煩。

          不使用vuex時

          父子之間傳遞信息:

          App.vue文件中:

          <template>
            <div id="app">
                <Fruits :fruitList="fruitList"/>
            </div>
          </template> 
          <script> import Goods from './components/Goods'; export default { name: 'App',
            components:{
              Fruits,
              Goods
            }, data(){
              return{ goodList:[
                {
                  name:'doll',
                  price:12 },
                { name:'glass',
                  price:10 }
              ],
              }
            }
          }
          </script>
          <style>
          </style>

          Good.vue文件中:

          <template>
            <div class="hello">
                <ul>
                  <li v-for="(good,index) in goodList" :key="index"> name:{{good.name}} number: {{good.number}} {{index}}
                  </li>
                </ul>
            </div>
          </template>
          
          <script> export default { props:['goodList'],
          }
          </script>
          <style>
          
          </style>

          兄弟之間傳遞信息:

          首先先創建一個js文件作為兩兄弟之間傳輸的紐扣,這里起名為msg.js

          //創建并暴露vue import Vue from 'vue';
          export default new Vue

          兄弟組件Goods:

          <template>
            <div>
                  <button @click="deliver">點擊</button>
            </div>
          </template>
          
          <script> import MSG from '../msg';
          export default {
            data(){ return{
                msg:'hahah' }
            },
            methods:{
              deliver() {
                  MSG.$emit('showMsg',this.msg)
              }
            }
          
          }
          </script>
          <style>
          
          </style>

          兄弟組件Fruits:

          <template>
            <div>
                <div class="fruit">
                    {{text}}
                </div>
            </div>
          </template>
          <script> import MSG from '../msg';
          export default {
              data(){ return{
                  text:'' }
              },
              created(){ this.getMsg()
              },
              methods:{
                getMsg(){
                  MSG.$on('showMsg',(message)=>{ this.text = message
                  })
                }
              }
          }
          </script>
          <style>
          </style>

          在App組件中的代碼:
          在這里插入圖片描述
          點擊按鈕:


          藍藍設計www.sdgs6788.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

          日歷

          鏈接

          個人資料

          藍藍設計的小編 http://www.sdgs6788.com

          存檔

          日韩精品久久久久久免费| av国内精品久久久久影院| 日韩人妻无码精品久久久不卡| 亚洲国产精品综合久久网络 | 精品久久一区二区三区| 久久精品国产99国产电影网 | 久久乐国产精品亚洲综合| 一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区 | 久久99久久99精品免视看动漫| 无码久久精品国产亚洲Av影片 | 久久人人爽人人爽人人片av高请| 韩国三级大全久久网站| 亚洲日本va午夜中文字幕久久| 狠狠色婷婷久久一区二区三区| 久久久精品久久久久特色影视| 乱亲女H秽乱长久久久| 亚洲国产天堂久久久久久| 久久久久久免费一区二区三区| 99久久精品免费看国产一区二区三区 | 久久国产香蕉视频| 久久电影网一区| 亚洲中文字幕久久精品无码喷水 | 精品久久久噜噜噜久久久| 久久综合久久性久99毛片| 成人国内精品久久久久影院VR| 伊人久久综合成人网| 亚洲国产成人久久精品99 | 久久国产精品偷99| 久久久久亚洲AV无码网站| 18岁日韩内射颜射午夜久久成人| 久久久人妻精品无码一区| 国内精品久久久久久久亚洲| 青青青青久久精品国产| 久久精品九九亚洲精品天堂| 99久久婷婷免费国产综合精品| 久久综合噜噜激激的五月天| 东方aⅴ免费观看久久av| 日本久久久久亚洲中字幕| 欧美亚洲色综久久精品国产| 久久久免费精品re6| 97久久精品国产精品青草|