vue學習 vue例項(instance)

2021-09-28 12:55:38 字數 2834 閱讀 3502

這一章主要是列舉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 ...