mpvue 不支持自定义指令吗?编译时会将自定义指令认定为属性,然后编译提示错误

3bygqnnd  于 4个月前  发布在  其他
关注(0)|答案(5)|浏览(43)

按照Vue 官方文档 ,试验自定义指令,结果提示warning

问题复现步骤:

  1. 按照Vue 官方文档 定义局部自定义指令
    实例的js部分代码
directives: {
  focus: {
    // 指令的定义
    inserted: function (el) {
      el.focus()
    }
  }
}

实例的html代码

<input v-focus>
  1. 启动开发脚本 npm run dev ,观察终端提示
  2. 终端显示内容如下
WARNING  Compiled with 1 warnings                                                                                                                                                          17:49:50

 warning  in ./src/pages/codeDetail/index.vue

(Emitted value instead of an instance of Error)   - 不支持此属性-> v-focus=""

 @ ./src/pages/codeDetail/index.vue 8:0-328
 @ ./src/pages/codeDetail/main.js

期望的表现:

期待编译时不会给出警告,并且自定义指令的功能好用

观察到的表现:

编译时提示警告,并且自定义指令的功能不好用

v09wglhw

v09wglhw1#

好像是不支持吧,官方文档也没把不支持的都列出来,坑....

xvw2m8pv

xvw2m8pv2#

我也是写了这个,npm run 的时候提示警告,inserted 里面打了 console.log  也没见输出

directives: {
  focus: {
    // 指令的定义
    inserted: function (el) {
      console.log('directives focus')
      el.focus()
    }
  }
}
yks3o0rb

yks3o0rb3#

查看源码是执行了注册的。
另外定义local的directive也会直接报错。
应该是在执行template syntax时候没有用上。

nafvub8i

nafvub8i4#

issue超过30天无更新或响应,7天后将自动关闭,如果问题状态有更新请及时更新issue

yrwegjxp

yrwegjxp5#

我试过了,在标签上写指令不行跟你一样的问题。感觉只能写个mixin了

相关问题