vue小紀

註冊一個vue組件
Vue.component(‘MyComponentName’, { /* … */ })

可能你的許多組件只是包裹了一個輸入框或按鈕之類的元素,是相對通用的。我們有時候會把它們稱爲基礎組件,它們會在各個組件中被頻繁的用到。
這個 prop 用來傳遞一個初始值;這個子組件接下來希望將其作爲一個本地的 prop 數據來使用。在這種情況下,最好定義一個本地的 data 屬性並將這個 prop 用作其初始值:
props: [‘initialCounter’],
data: function () {
return {
counter: this.initialCounter
}
}
這個 prop 以一種原始的值傳入且需要進行轉換。在這種情況下,最好使用這個 prop 的值來定義一個計算屬性:
props: [‘size’],
computed: {
normalizedSize: function () {
return this.size.trim().toLowerCase()
}
}
注意在 JavaScript 中對象和數組是通過引用傳入的,所以對於一個數組或對象類型的 prop 來說,在子組件中改變這個對象或數組本身將會影響到父組件的狀態。

注意那些 prop 會在一個組件實例創建之前進行驗證,所以實例的屬性 (如 data、computed 等) 在 default 或 validator 函數中是不可用的。

禁用特性繼承 inheritAttrs: false
$attrs 這尤其適合配合實例的 $attrs 屬性使用,該屬性包含了傳遞給一個組件的特性名和特性值,例如:
{
required: true,
placeholder: ‘Enter your username’
}

爲了解決這個問題,Vue 提供了一個 $listeners 屬性,它是一個對象,裏面包含了作用在這個組件上的所有監聽器。

訪問根實例
在每個 new Vue 實例的子組件中,其根實例可以通過 $root 屬性進行訪問。

$event Vue中的事件對象 $event.target.value

組件異步加載
components: {
‘my-component’: () => import(’./my-async-component’)
}

依賴注入
provide 和 inject。
provide 選項允許我們指定我們想要提供給後代組件的數據/方法。在這個例子中,就是 內部的 getMap 方法:

provide: function () {
return {
getMap: this.getMap
}
}
然後在任何後代組件裏,我們都可以使用 inject 選項來接收指定的我們想要添加在這個實例上的屬性:

inject: [‘getMap’]

vue混入

自定義指令

directives: {
focus: {
// 指令的定義
inserted: function (el) {
el.focus()
}
}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章