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 相关文章推荐
不同浏览器的怪癖小结
Jul 11 Javascript
js中widow.open()方法使用详解
Jul 30 Javascript
Node.js中require的工作原理浅析
Jun 24 Javascript
Javascript 闭包详解及实例代码
Nov 30 Javascript
微信小程序进行微信支付的步骤昂述
Dec 01 Javascript
微信小程序 JS动态修改样式的实现代码
Feb 10 Javascript
详解node.js的http模块实例演示
Jul 12 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 jQuery
VUE安装使用教程详解
Jun 03 Javascript
layui2.0使用table+laypage实现真分页
Jul 27 Javascript
js动态添加带圆圈序号列表的实例代码
Feb 18 Javascript
Vue组件化(ref,props, mixin,.插件)详解
May 15 Vue.js
解决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 高级课程笔记 面向对象
2009/06/21 PHP
PHP 字符串分割和比较
2009/10/06 PHP
php将数据库中所有内容生成静态html文档的代码
2010/04/12 PHP
PHP迅雷、快车、旋风下载专用链转换代码
2010/06/15 PHP
浅谈php://filter的妙用
2019/03/05 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
Ext第一周 史上最强学习笔记---GridPanel(基础篇)
2008/12/29 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
JavaScript Ajax编程 应用篇
2016/07/02 Javascript
react-router实现按需加载
2017/05/09 Javascript
浅谈vue中改elementUI默认样式引发的static与assets的区别
2018/02/03 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
JS实现数组去重及数组内对象去重功能示例
2019/02/02 Javascript
解决ele ui 表格表头太长问题的实现
2019/11/13 Javascript
详解钉钉小程序组件之自定义模态框(弹窗封装实现)
2020/03/07 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
[05:00]TI9战队采访 - Royal Never Give Up
2019/08/20 DOTA
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
基于PyQt4和PySide实现输入对话框效果
2019/02/27 Python
Python循环实现n的全排列功能
2019/09/16 Python
Python求平面内点到直线距离的实现
2020/01/19 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
html5使用canvas绘制文字特效
2014/12/15 HTML / CSS
入党积极分子介绍信
2014/01/17 职场文书
幼儿教师培训感言
2014/03/08 职场文书
工作骂脏话检讨书
2014/10/05 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
文明单位创建材料
2014/12/24 职场文书
母亲节寄语大全
2015/02/27 职场文书
保卫工作个人总结
2015/03/03 职场文书
导游词之新疆-喀纳斯
2019/10/10 职场文书