8月份开始团队使用 React,所以 Vue 很久没接触了,今天同事问我一个问题,发出来记录下

问题重现

一个输入键盘,keyUpHandle 为该触发事件函数,绑定 $event 和 index,在输入的时候 index 一直报错,虽然不影响功能实现,但洁癖看到红色报错还是很不爽的,一起来看吧!

图中看到 “「Property or method index is not defined on the instance but referenced during render」” 报错,翻译过来就是 “属性或方法索引未在实例上定义,但引用了”,打开 Chrome dev,根据报错定位到该行代码

可以看到**「 vm.index 」**为 undefined

小插曲

插段关于 JavaScript 的两个特殊数据类型:undefined 和 null,第一次碰见 undefined 的时候,尝试用 Java

if(obj == undefined){// doSomething...
}

自作聪明了,查询后得知 JavaScript 写法是这样的:

if(typeof(obj) == “undefined”){// doSomething...
}

这是为什么捏,为什么是这种写法捏,JavaScript 为什么偏偏多出了这种写法?我们知道在大多数计算机语言内,有且仅有一个表示"无"的值, C 是 NULL,Java 是 null,Python 是None,Ruby 是 nil,为什么 JavaScript 表示“无”的值是 undefined 和 null?
JavaScript 诞生之初,Brendan Eich 根据 C 传统设计 null 自动转成 0,但这个在 Java 里是一个对象,由于 JavaScript 数据类型分为「原始类型」和「复合类型」,Eich 觉得 “无” 最好不是一个对象,而且 JavaScript 一开始并没错误处理机制,数据类型不匹配都是直接默认转换或者失败,这样不容易发现错误,从而设计了 undefined。

关于 undefined

undefined 表示未声明或已声明但未赋值的变量或不存在的对象,函数没有返回值时,默认返回 undefined,判断是不是 undefined 使用 typeof 函数,其返回的字符串包括如下:

“number”,“string”,“boolean”,“object”,“function”,“undefined”

回到正题,错误提示 index 以声明但未赋值,Vue 里是有关于这段描述的,也是最独特的的特性之一,「非侵入性的响应式系统」,就是深入响应式原理啦~~
「Vue 不允许动态添加根级响应式属性,所以你必须在初始化实例前声明根级响应式属性,哪怕只是一个空值」,ok,到这里,问题就解决了,既然说了可以声明空值,那就声明一个空值!

data() {return{index: ''}
}

[Vue warn]: Property or method index is not defined on the instance but referenced during render相关推荐

  1. [Vue warn]: Property or method id is not defined on the instance but referenced during render.

    这是上一篇文章使用v-for时出现的warn: Mr.J--Vue之v-for全解析 在查看官方文档之后:Vue.js 由于Vue不允许动态添加根级别的响应属性,因此必须通过预先声明所有根级别的响应数 ...

  2. [Vue warn]: Property or method “throttle“ is not defined on the instance but referenced during rende

    在开发的过程中,用到了节流,引入公共的节流,初始调用如下(报错了-). template中: <button class="btn" @click="throttl ...

  3. Vue抛 Property or method turn is not defined on the instance but referenced during render. 的解决方法

    如下图,Vue 抛: [Vue warn]: Property or method "turn" is not defined on the instance but refere ...

  4. vue.runtime.esm.js:4560 [Vue warn]: Property or method “item“ is not defined on the instance but

    报错异常 vue.runtime.esm.js:4560 [Vue warn]: Property or method "item" is not defined on the i ...

  5. vue.esm.js?efeb:571 [Vue warn]: Property or method subItem is not defined on the instance but refe

    报错信息 vue.esm.js?efeb:571 [Vue warn]: Property or method "subItem" is not defined on the in ...

  6. Property or method xxxx is not defined on the instance but referenced during render.

    [Vue warn]: Property or method "getdata" is not defined on the instance but referenced dur ...

  7. VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 一个点击事件报错: Property or method "deleteFun&qu ...

  8. Property or method “id“ is not defined on the instance but referenced during render.Make sure ......

    Vue报错: Property or method "id" is not defined on the instance but referenced during render ...

  9. 报错:Property or method “item“ is not defined on the instance but referenced during render.

    前言:目前在敲项目,遇到的报错问题~ 报错原因: Property or method "item" is not defined on the instance but refe ...

最新文章

  1. JAVA里面的int类型 和Integer类型,有什么不一样
  2. linux下的软件包安装(rpm   yum)
  3. php实现的mongodb操作类
  4. mysql-gui怎么执行_MySQL 执行大量语句时的正确姿势? mysql *.sql ? 使用 GUI?
  5. ssm整合 durid数据源 报错java.sql.SQLException: Access denied for user ‘xxx‘@‘localhost‘
  6. python终端指令大全_使用python模拟命令行终端的示例
  7. 【Python】Matplotlib画布图案保存为PDF文件
  8. QueryRunner类常用的方法
  9. Cannot load module file xxx.iml Intellij
  10. Linux -- file 命令
  11. 产品读书《产品经理的第二本书》
  12. 虚拟机的安装及使用介绍
  13. G6 3.1 线条的属性
  14. Typora Beta版过期解决方法
  15. java 验证18位身份证号是否合法
  16. 稳定云服务器出租_云服务器租用,安全稳定的DDoS高防独立IP弹性云主机租用_爱普互联...
  17. YOLOv4论文解读
  18. 趁着时光正好,好好去爱她
  19. 布莱克斯科尔斯模型(四)方程推导过程
  20. C语言之程序环境和预处理

热门文章

  1. 数据案例-SAP为何转向HANA云计算?
  2. 美创科技首届渠道高峰论坛| 两大分论坛亮点汇聚
  3. 函数:lambda表达式+习题复习
  4. 详解SpringCloud-gateway动态路由两种方式,以及路由加载过程
  5. 使用wps2019的表格验证数据造假与否(本福特定律)
  6. android 360卫士跳转权限页面如何实现,奇酷360 手机中怎么跳转安全中心中指定包名App的权限管理页面...
  7. 模拟手机号码抽奖活动
  8. 银行面试java_来自投资银行的20个Java面试问题
  9. JDBC数据库连接池练习题
  10. Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理