您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關怎么使用Vue.observable()進行狀態管理的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
Vue具體輕量級框架、簡單易學、雙向數據綁定、組件化、數據和結構的分離、虛擬DOM、運行速度快等優勢,Vue中頁面使用的是局部刷新,不用每次跳轉頁面都要請求所有數據和dom,可以大大提升訪問速度和用戶體驗。
先看下官網描述,如下圖
observable()方法,用于設置監控屬性,這樣就可以監控viewModule中的屬性值的變化,從而就可以動態的改變某個元素中的值,監控屬性的類型不變量而是一個函數,通過返回一個函數給viewModule對象中的屬性,從而來監控該屬性。
說那么多,我們在實際例子中嘗試玩一下:
搭建個簡單腳手架,在項目src目錄下建立store.js,在組件里使用提供的 store和 mutation方法,同理其它組件也可以這樣使用,從而實現多個組件共享數據狀態。
首先創建一個 store.js,包含一個 store和一個 mutations,分別用來指向數據和處理方法。
//store.js import Vue from 'vue'; export let store =Vue.observable({count:0,name:'李四'}); export let mutations={ setCount(count){ store.count=count; }, changeName(name){ store.name=name; } }
然后在組件Home.vue中引用,在組件里使用數據和方法:
//Home.vue <template> <div class="container"> <home-header></home-header> <button @click="setCount(count+1)">+1</button> <button @click="setCount(count-1)">-1</button> <div>store中count:{{count}}</div> <button @click="changeName(name1)">父頁面修改name</button> <div>store中name:{{name}}</div> <router-link to="/detail" ><h6>跳轉到詳情頁</h6> </router-link> </div> </template> <script> import HomeHeader from '../components/HomeHeader' import {store,mutations} from '@/store' export default { data () { return { name1:'主頁的name' } }, components: { HomeHeader }, computed:{ count(){ return store.count }, name(){ return store.name } }, methods:{ setCount:mutations.setCount, changeName:mutations.changeName } } </script>
再定義一個子頁面觀察數據:
//Detail.vue <template> <div class="detail"> <detail-header></detail-header> <button @click="changeName(name2)">子頁面修改name</button> <p>store中name:{{name}}</p> </div> </template> <script> import DetailHeader from '../components/DetailHeader' import {store,mutations} from '@/store' export default { components: { DetailHeader } , data(){ return { name2:'子頁的name' } }, computed:{ name(){ return store.name } }, methods:{ changeName:mutations.changeName } } </script>
子頁面顯示如圖:
我們簡單點擊下按鈕,改變下store中的數據,效果如下:
最后補充一點,就是如果當前項目vue版本低于2.6,要使用Vue.observable(),就必須要升級,升級 vue 和 vue-template-compiler,兩者的版本需要同步,如果不同步項目會報錯。
//升級vue版本 npm update vue -S 或者 yarn add vue -S npm update vue-template-compiler -D 或者 yarn add vue-template-compiler -D
感謝各位的閱讀!關于“怎么使用Vue.observable()進行狀態管理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。