在通過衆人的支持,Vuet 1.x也發佈一週多的時間了,在這個大版本中,Vuet獲得了很大的瘦身,主要是去掉了manual
規則,將模塊的方法直接內置成模塊的一部分,route
規則和v-vuet-scroll
指令將提取出來成爲第三方的插件,在此基礎上,使得狀態測試變得更加簡單。javascript
狀態測試
案例,致力於Vuet
成爲一個成熟的vue
狀態管理模式(可能會提供專門的測試插件)vuet-store
規則(插件的形式),使用localStorage,讓模塊的狀態進行持久化vuet-timing
規則(插件的形式),讓模塊定時更新狀態reset
規則(內置Vuet),組件銷燬時,重置模塊狀態,這個能夠有效的減小內存的開銷github:Vuetvue
manual規則已廢棄
java
const vuet new Vuet({
modules: {
test: {
data () {
return {
count: 0
}
},
// 0.x寫法
// 在模塊中注入方法:mapRules({ manual: 'test' })
// 組件中調用方法:this.$test.plus()
manuals: {
plus ({ state }) {
state.count++
}
},
// 1.x寫法,不須要再將方法寫到manuals對象下
// 在模塊中注入方法:mapModules({ test: 'test' })
// 組件中調用方法:this.test.plus()
plus () {
this.count++
}
}
}
})複製代碼
route規則已剔除
已經從Vuet中剔除,須要安裝第三包才能實現git
npm install --save vuet-route複製代碼
安裝route規則github
import Vuet from 'vuet'
import VuetRoute from 'vuet-route'
// 安裝規則,必須在全部組件加載以前執行,不然會提示找不到規則
Vuet.rule('route', VuetRoute)複製代碼
配置相關npm
const vuet new Vuet({
modules: {
test: {
data () {
return {
list: [],
page: 1
}
},
// 0.x寫法,設置路由變化規則:fullPath = this.$route.fullPath
routeWatch: ['fullPath'],
// 1.x寫法,
route: {
watch: ['fullPath'], // 設置路由變化規則
once: false // 須要作上拉加載,能夠設置成true
},
fetch () {
// 在組件中,上拉加載事件觸發時,調用下面的方法便可
// this.$vuet.getModule('cleartest').route.fetch()
// 在組件中,下拉刷新加載事件觸發時,調用下面的方法便可
// this.$vuet.getModule('cleartest').route.reset()
this.app.$route // 取得路由對象,你能夠在這裏發起http請求
setInterval(() => {
this.list = [...this.list, ...[this.page]]
this.page++
}, 1000)
}
}
}
})複製代碼
v-vuet-scroll已剔除
已經從Vuet中剔除,須要安裝第三包才能實現bash
npm install --save vuet-scroll複製代碼
安裝v-vuet-scroll
指令app
import Vue from 'vue'
import VuetRoute from 'vuet-route'
Vue.use(VuetScroll)複製代碼
父子模塊
0.x寫法測試
const vuet = new Vuet({
modules: {
parent: { // 父模塊
data () {
return {}
},
chlid: { // 子模塊
data () { // 在0.x中,一個模塊對象中,存在一個data的方法會被認爲是一個模塊
return {}
}
}
}
}
})複製代碼
1.x寫法fetch
const vuet = new Vuet({
modules: {
parent: { // 父模塊
data () {
return {}
},
modules: { // 子模塊,必須在modules中顯示定義
chlid: {
data () {
return {}
}
}
}
}
}
})複製代碼