中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue簡單狀態管理之store模式是什么

發布時間:2021-05-17 09:19:15 來源:億速云 閱讀:488 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Vue簡單狀態管理之store模式是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

概述

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

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

1. 定義 store.js

//store.js
export const store = {
    state: {
        todos: [
            {text: '寫語文作業', done: false},
            {text: '做數學卷子', 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 組件,在下方輸入框輸入任務在 A組件 中添加任務
        </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. 實現效果

Vue簡單狀態管理之store模式是什么

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

vue是什么

Vue是一套用于構建用戶界面的漸進式JavaScript框架,Vue與其它大型框架的區別是,使用Vue可以自底向上逐層應用,其核心庫只關注視圖層,方便與第三方庫和項目整合,且使用Vue可以采用單文件組件和Vue生態系統支持的庫開發復雜的單頁應用。

感謝各位的閱讀!關于“Vue簡單狀態管理之store模式是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青州市| 济南市| 鹰潭市| 平舆县| 保康县| 武宁县| 东乡族自治县| 澜沧| 博爱县| 武威市| 柘城县| 尼勒克县| 辉县市| 江川县| 安徽省| 金阳县| 赤城县| 普兰店市| 诸城市| 永德县| 永川市| 墨竹工卡县| 彩票| 金塔县| 镇雄县| 洛阳市| 临沭县| 中阳县| 新晃| 资中县| 大余县| 包头市| 平远县| 肥西县| 秭归县| 房产| 黔江区| 顺义区| 米易县| 黄山市| 县级市|