[Vue warn]: Property or method index is not defined on the instance but referenced during render
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相关推荐
- [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不允许动态添加根级别的响应属性,因此必须通过预先声明所有根级别的响应数 ...
- [Vue warn]: Property or method “throttle“ is not defined on the instance but referenced during rende
在开发的过程中,用到了节流,引入公共的节流,初始调用如下(报错了-). template中: <button class="btn" @click="throttl ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 一个点击事件报错: Property or method "deleteFun&qu ...
- 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 ...
- 报错: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 ...
最新文章
- JAVA里面的int类型 和Integer类型,有什么不一样
- linux下的软件包安装(rpm yum)
- php实现的mongodb操作类
- mysql-gui怎么执行_MySQL 执行大量语句时的正确姿势? mysql *.sql ? 使用 GUI?
- ssm整合 durid数据源 报错java.sql.SQLException: Access denied for user ‘xxx‘@‘localhost‘
- python终端指令大全_使用python模拟命令行终端的示例
- 【Python】Matplotlib画布图案保存为PDF文件
- QueryRunner类常用的方法
- Cannot load module file xxx.iml Intellij
- Linux -- file 命令
- 产品读书《产品经理的第二本书》
- 虚拟机的安装及使用介绍
- G6 3.1 线条的属性
- Typora Beta版过期解决方法
- java 验证18位身份证号是否合法
- 稳定云服务器出租_云服务器租用,安全稳定的DDoS高防独立IP弹性云主机租用_爱普互联...
- YOLOv4论文解读
- 趁着时光正好,好好去爱她
- 布莱克斯科尔斯模型(四)方程推导过程
- C语言之程序环境和预处理
热门文章
- 数据案例-SAP为何转向HANA云计算?
- 美创科技首届渠道高峰论坛| 两大分论坛亮点汇聚
- 函数:lambda表达式+习题复习
- 详解SpringCloud-gateway动态路由两种方式,以及路由加载过程
- 使用wps2019的表格验证数据造假与否(本福特定律)
- android 360卫士跳转权限页面如何实现,奇酷360 手机中怎么跳转安全中心中指定包名App的权限管理页面...
- 模拟手机号码抽奖活动
- 银行面试java_来自投资银行的20个Java面试问题
- JDBC数据库连接池练习题
- Python+OpenCv实现AI人脸识别身份认证系统(1)——人脸识别原理