vue props传值失败 输出undefined的解决方法


Posted in Javascript onSeptember 11, 2018

如果在prop中传的值为一个没有使用特殊命名规则的变量如:(type),可以顺利传值:

<code class="language-html"><div id="app"> 
<test :type="type"></test> 
</div> 
Vue.component("test", { 
  props: ['type'], 
  template: '<div @click="a">我是按钮{{type}}</div>', 
  methods: { 
   a() { 
    console.log(this.type); 
   } 
  } 
 }); 
var app = new Vue({ 
 el: '#app', 
 data: { 
 type: 'test' 
 } 
});</code>

而当这个变量为驼峰命名法如:(selectName),就会传不过去:

<div id="app">
<test :selectName="selectName"></test>
</div>
Vue.component("test", {
  props: ['selectName'],
  template: '<div @click="a">我是按钮{{selectName}}</div>',
  methods: {
   a() {
    console.log(this.selectName);
   }
  }
 });
var app = new Vue({
 el: '#app',
 data: {
 selectName: 'test'
 }
});

解决方法是把selectName标签改为select-Name:

<div id="app">
<test :select-Name="selectName"></test>
</div>
Vue.component("test", {
  props: ['selectName'],
  template: '<div @click="a">我是按钮{{selectName}}</div>',
  methods: {
   a() {
    console.log(this.selectName);
   }
  }
 });
var app = new Vue({
 el: '#app',
 data: {
 selectName: 'test'
 }
});

总结:如果为驼峰命名法传递的话,html不区分大小写(所有的都会转换为小写),所以testName 在html表现为 :test-name ,需要注意的是vue中使用props传递时最好不要用横杆如select-name 的写法,因为使用的时候this.select-name中的横杠会认为它是减号,导致辨认不出来。在定义事件的时候最好命名都为小写,如

this.$emit("selectchange","data");

不要写成

this.$emit("selectChange","data");

html同样认不出来,比较好的方式是这种

this.$emit("select-change","data");

以上这篇vue props传值失败 输出undefined的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript与jquery中跳出循环的区别总结
Nov 04 Javascript
javascript 闭包详解
Feb 15 Javascript
JQuery中层次选择器用法实例详解
May 18 Javascript
Javascript 是你的高阶函数(高级应用)
Jun 15 Javascript
JS访问SWF的函数用法实例
Jul 01 Javascript
JavaScript中Array的实用操作技巧分享
Sep 11 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
Oct 28 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
浅谈ES6新增的数组方法和对象
Aug 08 Javascript
Vue-CLI与Vuex使用方法实例分析
Jan 06 Javascript
el-table树形表格表单验证(列表生成序号)
May 31 Javascript
解决Antd Table表头加Icon和气泡提示的坑
Nov 17 Javascript
解决vue props 拿不到值的问题
Sep 11 #Javascript
vue首次赋值不触发watch的解决方法
Sep 11 #Javascript
JavaScript中Array方法你该知道的正确打开方法
Sep 11 #Javascript
解决Vue2.0 watch对象属性变化监听不到的问题
Sep 11 #Javascript
详解webpack模块加载器兼打包工具
Sep 11 #Javascript
webpack css加载和图片加载的方法示例
Sep 11 #Javascript
vue1.0和vue2.0的watch监听事件写法详解
Sep 11 #Javascript
You might like
php数组去重复数据示例
2014/02/25 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
2014/03/14 PHP
destoon找回管理员密码的方法
2014/06/21 PHP
本地计算机无法启动Apache故障处理
2014/08/08 PHP
PHP微信开发之查询微信精选文章
2016/06/23 PHP
PHP中使用OpenSSL生成证书及加密解密
2017/02/05 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
IE 上下滚动展示模仿Marquee机制
2009/12/20 Javascript
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
jQuery怎么解析Json字符串(Json格式/Json对象)
2013/08/09 Javascript
Jquery获得控件值的三种方法总结
2014/02/13 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
Jquery api 速查表分享
2015/01/12 Javascript
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
微信 java 实现js-sdk 图片上传下载完整流程
2016/10/21 Javascript
Iphone手机、安卓手机浏览器控制默认缩放大小的方法总结(附代码)
2017/08/18 Javascript
微信小程序收货地址API兼容低版本解决方法
2019/05/18 Javascript
小程序中canvas的drawImage方法参数使用详解
2019/07/04 Javascript
javascript设计模式 ? 访问者模式原理与用法实例分析
2020/04/26 Javascript
在python的类中动态添加属性与生成对象
2016/09/17 Python
python 第三方库的安装及pip的使用详解
2017/05/11 Python
python使用Geany编辑器配置方法
2020/02/21 Python
解决Python安装cryptography报错问题
2020/09/03 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
CSS3 calc()会计算属性详解
2018/02/27 HTML / CSS
CSS3教程(6):创建网站多列
2009/04/02 HTML / CSS
函授大学生自我鉴定
2014/02/05 职场文书
构建高效课堂实施方案
2014/03/13 职场文书
幼儿园区域活动总结
2014/05/08 职场文书
奥巴马竞选演讲稿
2014/05/15 职场文书
优秀毕业生自荐信
2014/06/10 职场文书
小学生安全保证书
2015/05/09 职场文书
读书笔记格式
2015/07/02 职场文书
文艺节目主持词
2015/07/06 职场文书
一文帮你理解PReact10.5.13源码
2021/04/03 Javascript