這一章主要是列舉vue例項一些實用的方法和屬性,大概講解一下用到的地方,有些涉及元件部分的屬性,暫時跳過,待到學完元件章節,再回過頭來補充。
主要講解:
vue instance宣告方式
vue instance上的屬性
vue instance上的方法
vue instance宣告方式
const vm = new vue(}
`, //模板
data:
})
vue instance 上的屬性
vm.$data
vm.$data就是當前instance(vm)中data屬性。可以通過修改vm.$data.text = 1修改上例中text的值。
vm.$el
vm 掛載的dom節點
console.log(vm.$el); //輸出:0
//輸出型別為object
vm.$options
vue例項初始化的物件,會新增一些預設引數,上例輸出:
vue元件樹的根例項,元件樹中任意元件訪問的vm.$root都是一樣的,上例中沒有父例項,所以輸出為自己
vm的父例項。
vm.$props
當前元件接受的props物件
vm.$children
當前例項的子元件(留到元件學完補充)
vm.$slots vm.$scopedslots
插槽概念(留到元件學完補充)
vm.$refs
註冊過ref的dom元素或者元件例項
vm.$isserver
用來判斷是否在伺服器端,主要用於服務端渲染的時候。
vue instance 上的方法
vm.$watch
vm.$watch功能上和vue例項中的watch方法相同
const vm = new vue(}
`, data: ,
// watch: : $`);
// }
// },
})setinterval(() => , 1000)
//text : 監聽的屬性值
//newvalue: 變化之後text的值
//oldvalue: 變化之前text的值
vm.$watch('text', (newvalue,oldvalue) => : $`);
})//上述vm.$watch實現方法和 vm例項中watch中實現的功能相同
不同點:
vm 中watch的對text的監聽在vm例項銷毀的時候自動移除。
通過vm.$watch新增的監聽,需要主動移除監聽。
移除方法:
//上例**修改
//text : 監聽的屬性值
//newvalue: 變化之後text的值 新值引數在前
//oldvalue: 變化之前text的值 老值引數在後
//vm.$watch 最後會返回乙個方法(unwatch),通過呼叫unwatch()移除監聽
const unwatch = vm.$watch('text', (newvalue, oldvalue) => : $`);
//settimeout 中2s移除監聽,
//輸出結果因為:
//0 : 1
//1 : 2
})// 2s 後移除vm.$watch監聽
settimeout(() => , 2000)
vm.$on 、vm.$once、vm.$emit、vm.$off
繫結:vm.$on 、vm.$once(只觸發一次)
觸發:vm.$emit
移除:vm.$off
setinterval(() => , 1000)
//繫結eventone事件 觸發事件所攜帶的引數,將作為函式的引數傳入
//vm.$once //也是繫結事件方法,用法一樣;區別:vm.$once只能觸發一次
vm.$on('eventone', (param1) => `)
})
vm.$set、vm.$delete
vm.$set 是給響應式的物件(基本都是vue例項中的data物件)新增乙個新的屬性,並且這個新的屬性也是響應式的。
響應式解釋:就是當這個物件改變的時候,vue會重新渲染
問題場景:當前vm例項的data中新增乙個obj:{}屬性,在執行過程中新增了乙個a屬性,即obj:,此時的obj.a是不具備響應式的。
解決方法:1.(推薦)在定義obj的時候,首先考慮到後續用到的值,通過obj:方式提前定義
2.(不推薦)使用vm.$forceupdate()強制重新渲染當前例項
原因:開銷比較大
3. 使用vm.$set
//此時obj.a每次改變,都會重新渲染
const vm = new vue(}
`, data:
},})
let i = 1;
setinterval(() => , 1000)
vm.$delete 刪除物件屬性。響應式物件刪除的時候會更新視 Vue學習計畫基礎筆記 一 vue例項
最近又重新看vue的文件了,計畫是別人寫的,之前看過一次,沒有考慮太多,只考慮看懂能用就好.看完之後寫過寫demo,現在是零實際專案經驗的,所以這一次打算細看,算是官方文件的二次產物吧,但是不是全部直接複製貼上那種,中間加了些個人見解 或許是誤解 下去,寫出來也好讓別人指正自己.vue例項 目標 1...
Vue專題 二 Vue例項
每個 vue 應用都是通過用vue函式建立乙個新的vue 例項開始的 var vm newvue 在建構函式中傳入乙個物件,並且在物件中宣告各種vue需要的資料和方法,包括 接下來我們一 一介紹。每個vue例項都需要關聯一段html模板,vue會基於此模板進行檢視渲染。我們可以通過el屬性來指定。例...
Vue例項列表
true model queryform class demo form inline 姓名 queryform.name placeholder 姓名 el input el form item 班級 queryform.classesid placeholder 請選擇班級 clearable ...