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

如何理解Vue簡單狀態(tài)管理之store模式

 更新時間:2021年05月15日 14:19:32   作者:lovin  
狀態(tài)管理也就是數(shù)據(jù)狀態(tài)管理,vue應(yīng)用程序的各組件之間經(jīng)常需要進(jìn)行通信,除了v-on、EventBus等通信方式外,可以采用數(shù)據(jù)共享的方式進(jìn)行通信。這種簡單的數(shù)據(jù)共享模式就是store模式。

概述

store 狀態(tài)管理模式的實現(xiàn)思想很簡單,就是定義一個 store 對象,對象里有 state 屬性存儲共享數(shù)據(jù),對象里還存儲操作這些共享數(shù)據(jù)的方法。在組件中將 store.state 共享數(shù)據(jù)作為 data 的一部分或全部,在對 store.state 對象里的共享數(shù)據(jù)進(jìn)行改變時,必須調(diào)用 store 提供的接口進(jìn)行共享數(shù)據(jù)的更改。

以下以一個簡單 todo-list demo 來介紹 store 狀態(tài)管理模式

1. 定義 store.js

//store.js
export const store = {
    state: {
        todos: [
            {text: '寫語文作業(yè)', done: false},
            {text: '做數(shù)學(xué)卷子', done: false}
        ]
    },
    addTodo(str){
        const obj = {text: str, done: false}
        this.state.todos.push(obj)
    },
    setDone(index){
        this.state.todos[index].done = true
    }
}

2. 組件使用 store.js

//A.vue
<template>
    <div class="A">
        我是 A組件
       <ul>
           <li v-for="(todo,index) in todos" 
           :key="index" :class="todo.done?'done':''" @click="setDone(index)">
           {{todo.text}}
           </li>
       </ul>
    </div>
</template>

<script>
import {store} from '../store/store.js'
export default {
    name: 'A',
    data(){
        return store.state
    },
    methods: {
        setDone(index){
            store.setDone(index)
        }
    }
}
</script>

<style scoped>
.A{
    background: red;
    color: white;
    padding: 20px;
}
.A li.done{
    background: green;
}
</style>
//B.vue
<template>
    <div class="B">
        <div>
            我是 B 組件,在下方輸入框輸入任務(wù)在 A組件 中添加任務(wù)
        </div>
        <input type="text" v-model="text">
        <button @click="addTodo">add todo</button>
    </div>
</template>

<script>
import {store} from '../store/store.js'
export default {
    name: 'B',
    data(){
        return {
            text: ''
        }
    },
    methods:{
        addTodo(){
            if(this.text){
                store.addTodo(this.text)
            }
        }
    }
}
</script>

<style scoped>
.B{
    background: yellow;
    padding: 20px;
}
</style>
//App.vue
<template>
  <div id="app">
    <A />
    <B />
  </div>
</template>

<script>

import A from './components/A.vue'
import B from './components/B.vue'

export default {
  name: 'App',
  components: {
    A,
    B
  }
}
</script>

3. 實現(xiàn)效果

可以看到,在 A組件 中顯示的數(shù)據(jù),在 B組件 中進(jìn)行添加和修改,就是通過數(shù)據(jù)共享的方式進(jìn)行數(shù)據(jù)通信,簡單的 store模式 就是這樣的運(yùn)用方式。

以上就是如何理解Vue簡單狀態(tài)管理之store模式的詳細(xì)內(nèi)容,更多關(guān)于Vue簡單狀態(tài)管理之store模式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在Vue3中使用localStorage保存數(shù)據(jù)的流程步驟

    在Vue3中使用localStorage保存數(shù)據(jù)的流程步驟

    在前端開發(fā)中,尤其是利用Vue3構(gòu)建現(xiàn)代Web應(yīng)用時,掌握如何使用本地存儲(localStorage)來保存數(shù)據(jù)是非常重要的能力,在這篇博客中,我將詳細(xì)介紹如何在Vue3中使用localStorage保存數(shù)據(jù),并提供示例代碼來幫助理解,需要的朋友可以參考下
    2024-06-06
  • vue transition 在子組件中失效的解決

    vue transition 在子組件中失效的解決

    今天小編就為大家分享一篇vue transition 在子組件中失效的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • vue.js 初體驗之Chrome 插件開發(fā)實錄

    vue.js 初體驗之Chrome 插件開發(fā)實錄

    這篇文章主要介紹了vue.js 初體驗之Chrome 插件開發(fā)實錄 ,需要的朋友可以參考下
    2017-05-05
  • elementui使用el-upload組件實現(xiàn)自定義上傳的詳細(xì)步驟

    elementui使用el-upload組件實現(xiàn)自定義上傳的詳細(xì)步驟

    upload上傳是前端開發(fā)很常用的一個功能,在Vue開發(fā)中常用的Element組件庫也提供了非常好用的upload組件,這篇文章主要給大家介紹了關(guān)于elementui使用el-upload組件實現(xiàn)自定義上傳的詳細(xì)步驟,需要的朋友可以參考下
    2023-12-12
  • vue制作加載更多功能的正確打開方式

    vue制作加載更多功能的正確打開方式

    這篇文章是一篇Vue.js的教程,目標(biāo)在于用一種常見的業(yè)務(wù)場景——分頁/無限加載,以及編寫過程中自己的錯誤寫法,分享給大家,幫助讀者更好的理解Vue.js中的一些設(shè)計思想。
    2016-10-10
  • 使用vue實現(xiàn)手寫簽名功能

    使用vue實現(xiàn)手寫簽名功能

    這篇文章主要介紹了使用vue實現(xiàn)手寫簽名功能,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-07-07
  • vue表單驗證rules及validator驗證器的使用方法實例

    vue表單驗證rules及validator驗證器的使用方法實例

    在vue開發(fā)中,難免遇到各種表單校驗,下面這篇文章主要給大家介紹了關(guān)于vue表單驗證rules及validator驗證器使用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • vue+node實現(xiàn)圖片上傳及預(yù)覽的示例方法

    vue+node實現(xiàn)圖片上傳及預(yù)覽的示例方法

    這篇文章主要介紹了vue+node實現(xiàn)圖片上傳及預(yù)覽的示例方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue如何獲取自定義元素屬性參數(shù)值的方法

    vue如何獲取自定義元素屬性參數(shù)值的方法

    這篇文章主要介紹了vue如何獲取自定義元素屬性參數(shù)值的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Vuejs第九篇之組件作用域及props數(shù)據(jù)傳遞實例詳解

    Vuejs第九篇之組件作用域及props數(shù)據(jù)傳遞實例詳解

    這篇文章主要介紹了Vuejs第九篇之組件作用域及props數(shù)據(jù)傳遞實例詳解的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09

最新評論

五原县| 商城县| 施甸县| 阜宁县| 区。| 洮南市| 大庆市| 彭山县| 赤壁市| 札达县| 景宁| 西安市| 贡山| 富川| 新竹市| 视频| 贞丰县| 宜春市| 赤城县| 攀枝花市| 遵义市| 休宁县| 肥西县| 饶河县| 恩平市| 金门县| 六枝特区| 崇义县| 庆安县| 始兴县| 什邡市| 琼中| 利辛县| 弥渡县| 新蔡县| 新民市| 郧西县| 聂荣县| 琼中| 乌兰浩特市| 阿坝县|