平时习惯了用本身所知的方法来解决问题。今天看到本身以前写的组件被同事改了一下,看到一些没怎么用过的方法。特地去恶补了一下,算给本身打个补丁并记录一下。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:一个对象,包含如下属性:函数