this.$nexttick() && vue.nexttick()的作用
在某個動作有可能改變dom元素結構的時候,對dom一系列的js操作都要放進vue.nexttick()
的**函式中
你在vue生命週期的created()
鉤子函式進行的dom操作一定要放在vue.nexttick()
的**函式中。原因是什麼呢,原因是在created()
鉤子函式執行的時候dom 其實並未進行任何渲染,而此時進行dom操作無異於徒勞,所以此處一定要將dom操作的js**放進vue.nexttick()
的**函式中。與之對應的就是mounted
鉤子函式,因為該鉤子函式執行時所有的dom掛載已完成。使用時機:el 被新建立的 vm.$el 替換,並掛載到例項上去之後呼叫該鉤子函式,此時頁面並未全部渲染。
vue.component('example', }',data: function ()
},methods: )
}}})
二. 對於移動端的觸控事件
對於原生的js,要禁止瀏覽器的預設行為,就是e.preventdefault();
對於vue,有@touchstart.prevent;不過對於類似移動端的字母篩選,還是會觸發到背景下的滾動,於是可以採用css屬性--touch-action:none;完全禁止掉瀏覽器的預設行為就可以了
三. 對於錨點的使用
對於懶載入,使用錨點是沒有任何作用的,所以對於需要使用錨點的元件,不能用webpack的懶載入
四. 對於watch屬性
直接對於修改陣列或者物件的某個屬性,並不會觸發watch,要使用vue的this.$set(obj, key, newvalue)來觸發watch時間
vue元件劃分注意點
如何實現元件化 基礎元件主要指那些本身不包含任何業務邏輯 可以被輕鬆復用的元件,例如 picker timepicker toast dialog actionsheet 等等.基礎元件的通訊基本就是往元件傳入 prop,並監聽元件 emit 的事件。業務元件主要指那些包含業務邏輯,包括一些與後端介...
Vue遇到的注意點總結 1
1.vue無法檢測陣列項的修改 通過索引更改陣列中某一項時不會觸發重新整理 this items 3 不會觸發更新解決方式 1.使用vue.set 方法 2.通過splice 方法的第三個引數修改內容 2.vue無法檢測陣列長度的修改 直接修改陣列length屬性不會觸發重新整理 this item...
vue 使用watch監聽注意點
1.1 watch 監聽不到 obejct物件的變化 在專案中,當我們需要監聽乙個物件的改變時,普通的watch方法無法監聽到物件內部屬性的改變,只有data中的資料才能夠監聽到變化,此時就需要deep屬性對物件進行深度監聽。解決方法 此時可以設定監聽物件的deep ture。來實現監聽到物件屬性的...