自定义指令 简化

在新版中,指令的使用范围已经大大减小了:现在指令仅仅被用于低级的 DOM 操作。大多数情况下,最好是使用组件作为代码复用的抽象层。

显要的改变有如下几点:

  • 指令不再拥有实例。意思是,在指令的钩子函数中不再拥有实例的 this 。替代的是,你可以在参数中接受你需要的任何数据。如果确实需要,可以通过 el 来访问实例。
  • 类似 acceptStatementdeeppriority 等都已被弃用。为了替换双向指令,见 示例
  • 现在有些钩子的意义和以前不一样了,并且多了两个钩子函数。 幸运的是,新钩子更加简单,更加容易掌握。详见 自定义指令指南

升级方式

运行迁移工具找到定义指令的地方。在 helper 工具会把这些地方标记出来,因为很有可能这些地方需要重构。

指令 .literal 修饰符 移除

.literal 修饰符已经被移除,为了获取一样的功能,可以简单地提供字符串修饰符作为值。

示例,如下更改:

  1. <p v-my-directive.literal="foo bar baz"></p>

只是:

  1. <p v-my-directive="'foo bar baz'"></p>

升级方式

运行迁移工具找到实例中使用 .literal 修饰符的地方。