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 相关文章推荐
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
Sep 23 Javascript
js判断当页面无法回退时关闭网页否则就history.go(-1)
Aug 07 Javascript
原生js和jquery实现图片轮播特效
Apr 23 Javascript
详解JavaScript中的表单验证
Jun 16 Javascript
jquery判断复选框是否被选中的方法
Oct 16 Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 Javascript
AngularJS 实现弹性盒子布局的方法
Aug 30 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
Dec 19 Javascript
基于Javascript实现的不重复ID的生成器
Dec 25 Javascript
react native基于FlatList下拉刷新上拉加载实现代码示例
Sep 30 Javascript
Vue+Node实现商品列表的分页、排序、筛选,添加购物车功能详解
Dec 07 Javascript
vue 查看dist文件里的结构(多种方式)
Jan 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 strtotime函数详解
2009/12/18 PHP
重新封装zend_soap实现http连接安全认证的php代码
2011/01/12 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
Array.slice()与Array.splice()的返回值类型
2006/10/09 Javascript
JS跨域代码片段
2012/08/30 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
Javascript 浮点运算的问题分析与解决方法
2013/08/27 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
JS计算网页停留时间代码
2014/04/28 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
javascript实现图片轮播效果
2016/01/20 Javascript
基于javascript实现根据身份证号码识别性别和年龄
2016/01/22 Javascript
jQuery读取XML文件的方法示例
2017/02/03 Javascript
vue之数据交互实例代码
2017/06/16 Javascript
ztree简介_动力节点Java学院整理
2017/07/19 Javascript
Angular 作用域scope的具体使用
2017/12/11 Javascript
CSS3结合jQuery实现动画效果及回调函数的实例
2017/12/27 jQuery
vue中echarts3.0自适应的方法
2018/02/26 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
从零学python系列之教你如何根据图片生成字符画
2014/05/23 Python
浅析Python中的join()方法的使用
2015/05/19 Python
用生成器来改写直接返回列表的函数方法
2017/05/25 Python
Python中.join()和os.path.join()两个函数的用法详解
2018/06/11 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
Django的Modelforms用法简介
2019/07/27 Python
python如何保证输入键入数字的方法
2019/08/23 Python
Python编程快速上手——strip()函数的正则表达式实现方法分析
2020/02/29 Python
20行Python代码实现视频字符化功能
2020/04/13 Python
html5的canvas方法使用指南
2014/12/15 HTML / CSS
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
2014年师德师风学习材料
2014/05/16 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
在酒桌上的敬酒词
2015/08/12 职场文书
2016年“六一儿童节”校园广播稿
2015/12/17 职场文书
2016年小学教师政治学习心得体会
2016/01/23 职场文书