[Vue 警告]:属性或方法“v”未在实例上定义,但在渲染期间被引用

Posted

技术标签:

【中文标题】[Vue 警告]:属性或方法“v”未在实例上定义,但在渲染期间被引用【英文标题】:[Vue warn]: Property or method "v" is not defined on the instance but referenced during render 【发布时间】:2017-11-14 16:02:38 【问题描述】:

这是我的组件。 el.focus() 插入时确实有效,但我在控制台上得到了[Vue warn]: Property or method "v" is not defined on the instance but referenced during render。 如何解除警告?

<script>
  export default 
    directives: 
      focus: 
        inserted (el) 
          el.focus()
        
      
    
  
</script>
<style lang="stylus" scoped>
  input
    width: 300px
    height: 30px
    border: 1px solid #000
</style>

<template lang="jade">
  div
    input(v-focus)
</template>

【问题讨论】:

【参考方案1】:

据我所知,当您将空属性传递给jade 时,它​​在纯html 中解释为attribute="attribute"。在您的情况下,实际的 HTML 是 v-focus="v-focus",vue 将其解释为使用不存在的属性 v 的表达式。

您可以尝试input(v-focus="true"),因为传递给该指令的值并不重要。

【讨论】:

我在inserted 函数中打印binding 参数。然后我发现:当我的代码是input(v-focus),binding.expression 是v-focus。当我的代码是input(v-focus)时,绑定没有expression属性,警告消失

以上是关于[Vue 警告]:属性或方法“v”未在实例上定义,但在渲染期间被引用的主要内容,如果未能解决你的问题,请参考以下文章

[Vue 警告]:未定义属性或方法“$v”

Vue警告]:属性或方法“选项”未在实例上定义,但在render.Vue js问题期间引用

Vue警告:属性或方法“item”未在实例上定义,但在渲染期间被引用

为啥我看到 Vue 警告:“属性或方法“msg”未在实例上定义,但在渲染期间被引用...”

[Vue 警告]:属性或方法“游戏”未在实例上定义,但在渲染期间引用

[Vue 警告]:属性或方法未在实例上定义,但在渲染期间引用