混入

混入(mixin)是一个对象,里面可以编写其他组件需要共用的 vue 选项

// 定义一个混入对象
var myMixin = {
  created: function () {
    this.hello()
  },
  methods: {
    hello: function () {
      console.log('hello from mixin!')
    }
  }
}
 
// 定义一个使用混入对象的组件
var Component = Vue.extend({
  mixins: [myMixin]
})
 
var component = new Component() // => "hello from mixin!"

混入对象 会自动与 使用混入的组件进行选项合并:

  • 值为对象的选项:自动递归合并,重名的以组件中为主
  • 钩子函数:混入的钩子在组件的钩子之前调用

插件

插件通常用来为 Vue 添加全局功能

通过全局方法 Vue.use() 使用插件,需要在调用 new Vue() 启动应用之前完成

下面有很多 Vue 插件和库:GitHub - vuejs/awesome-vue: 🎉 A curated list of awesome things related to Vue.js

自定义指令

除了内置指令外,还可以注册自定义指令,来实现对 DOM 元素的底层操作

// 注册全局指令
Vue.directive('name', {
  // 当被绑定的元素插入到 DOM 中时进行的操作……
  inserted(el, binding) {
    // el: 指令绑定的 DOM 元素
    // binding: 指令的数据
    
    // ...
  }
})

渲染函数 & JSX

createElement():用来创建虚拟节点,相对于模板更接近编译器,用 createElement() 渲染函数来写会很复杂和麻烦,所以使用 JSX 语法