Vue.js知識點雜記

渲染

深刻式響應--頁面監聽對象或數組型的數據變化,簡單的設置某個元素的的值是無效的,要使用push等變異方法,或者使用vue.$set()vue

nextTick--DOM發生變化後會執行寫入的回調函數數組

父子組件傳值

子傳給父--this.$emit()觸發事件,傳遞數據閉包

父傳給子--若是是一個對象的話,在父組件的data裏要把對象的屬性都要聲明出來,否則在子組件是渲染不出來的,
同時屬性要初始化函數

prop值修改問題--不要輕易修改組件中prop的值(它是用來父組件傳值給子組件,隨意修改會影響其在父組件裏的數據混亂)對於引入類型的數據如數組和對象來講,它們的值則是數據的地址。這是要區分開來的。this

對prop進行「雙向綁定」--在一個包含prop的子組件中,用this.$emit('update:title', newTitle)來表達對其賦新值的意圖。而後在父組件中能夠監聽那個事件並更新一個本地的數據屬性
<text-document v-bind:title.sync="doc.title"></text-document>雙向綁定

路由

路由前置守衛--想要結束路由守衛,整段代碼的邏輯必須有next()進行結尾。code

this.$route--定位到了當前路由的對象,能夠獲取到query、params、name、path等信息
this$router爲VueRouter實例,經過push、replace等函數實現了路由的跳轉router

watch監聽

watch失效問題--監聽對象,要加一個配置 deep: true
由於對象的值是一個引用,咱們改變對象屬性的值的時候,改變的不是這個對象的引用,所以監聽不到對象

watch中oldVal對於深度監聽對象是無效的,其實對於oldValue的值和newValue的值等同這種現象是合理的,由於都指向了同一個引用,值固然是同樣的事件

其餘

混入--分發vue組件中可複用的功能,混入組件的意思是,其餘組件能夠使用被混入組件的計算屬性

template--語義化標籤,把它當作不可見的包裹元素,最後不會渲染出來,通常用於插槽,v-if渲染和v-for渲染

在computed的方法內如傳遞參數--使用閉包

相關文章
相關標籤/搜索