平時習慣了用本身所知的方法來解決問題。今天看到本身以前寫的組件被同事改了一下,看到一些沒怎麼用過的方法。特地去惡補了一下,算給本身打個補丁並記錄一下。html
provide,inject這個東西,說實話我我的以爲至此爲止,我遇到的工做中他能用的場景其實很少。這個東西就是props的增強版。
一搬父子傳參咱們能夠用:vue
父子組件間經過屬性的寫法,直接傳參。node
// 父組件 <children :parmas="data"></children>
// 子組件用props接 props:{ data: Object } // 使用時直接在本vue實例用調 this.data
狀態管理就是一個全局的庫,在根部註冊後,在任意實例中均可以經過store調用變量。vuex
this.$store.state
這個就是介於前二者之間的東西。他是經過在某一父組件中註冊一個變量。在其子孫組件中能夠調用其變量。不侷限在直接父子間。
用法:express
// 父組件中 export default { name: "Parent", provide: { for: "demo" } }
// 子孫組件 export default { name: "grandson", inject: ['for'] } // 調用也是跟props同樣 this.for
provide/inject就是一個局部的小庫。在一些總體沒有必要引Vuex,在某個模塊中又須要用到一個庫的項目中它是能夠考慮的選擇。dom
須要批量操做特定dom的時候,特別是須要用到dom節點的時候。能夠考慮用自定義指令完成。 這個官網解釋得很詳細。自定義指令ide
// 注意是在根部Vue調用directive註冊,這裏寫指令的時候不須要加"v-" Vue.directive('focus', { inserted: function (el) { el.focus() } })
// 直接加"v-"便可,dom被直接聚焦 <input v-focus>
binding:一個對象,包含如下屬性:函數