<strike id="cy2gs"><menu id="cy2gs"></menu></strike>
  • <del id="cy2gs"><dfn id="cy2gs"></dfn></del>
  • 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.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

    日歷

    鏈接

    個人資料

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

    存檔

    主站蜘蛛池模板: 日本精品久久久久中文字幕| 成人国内精品久久久久一区| 精品999久久久久久中文字幕| 精品免费久久久久久久| 日韩精品一区二区亚洲AV观看| 无码久久精品国产亚洲Av影片| 国语自产少妇精品视频| 精品国产自在在线在线观看| 国产精品亚洲精品日韩已方| 国产小呦泬泬99精品| 久夜色精品国产一区二区三区| 中文精品人人永久免费| 国产精品亚洲а∨无码播放| 在线精品视频播放| 尤物TV国产精品看片在线| 国产女人精品视频国产灰线| 97精品国产97久久久久久免费| 久久久91人妻无码精品蜜桃HD | 一本一本久久a久久综合精品蜜桃| 无码人妻精品一区二区三区99仓本| 久久久久成人精品无码中文字幕 | 亚洲精品亚洲人成在线观看| 国产精品日本一区二区不卡视频| 国产精品爱搞视频网站| 亚洲国产精品自产在线播放| 国产精品免费网站| 午夜天堂精品久久久久| 国产区精品高清在线观看| 国产成人vr精品a视频| 香港aa三级久久三级老师2021国产三级精品三级在 | 精品国产福利第一区二区三区| 欧美精品在线免费| 91久久精品国产91性色也| 无码精品A∨在线观看中文| 中文字幕精品视频| 国产精品后入内射日本在线观看| 久久久久久青草大香综合精品| 午夜精品成年片色多多| 久久99国产乱子伦精品免费| 亚洲精品国产精品乱码在线观看 | 手机日韩精品视频在线看网站|