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 相关文章推荐
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
JavaScript中valueOf函数与toString方法深入理解
Dec 02 Javascript
jquery 通过name快速取值示例
Jan 24 Javascript
基于jQuery下拉选择框插件支持单选多选功能代码
Jun 07 Javascript
微信小程序 Video API实例详解
Oct 02 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
用Axios Element实现全局的请求loading的方法
Mar 15 Javascript
详解angular2 控制视图的封装模式
Dec 27 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
Feb 15 Javascript
vue实现路由懒加载及组件懒加载的方式
Jun 11 Javascript
vue 实现走马灯效果
Oct 28 Javascript
JS实现京东商品分类侧边栏
Dec 11 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简单系统查询模块代码打包下载
2008/06/07 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
浅谈PHP中Stream(流)
2015/06/08 PHP
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
jquery的ajax简单结构示例代码
2014/02/17 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
设置jQueryUI DatePicker默认语言为中文
2016/06/04 Javascript
Bootstrap中点击按钮后变灰并显示加载中实例代码
2016/09/23 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
canvas实现十二星座星空图
2017/02/14 Javascript
nodejs中模块定义实例详解
2017/03/18 NodeJs
React学习之事件绑定的几种方法对比
2017/09/24 Javascript
微信小程序页面滚动到指定位置代码实例
2019/09/07 Javascript
关于layui 弹出层一闪而过就消失的解决方法
2019/09/09 Javascript
[43:03]完美世界DOTA2联赛PWL S2 PXG vs Magma 第二场 11.21
2020/11/24 DOTA
python编程-将Python程序转化为可执行程序[整理]
2007/04/09 Python
python使用scrapy解析js示例
2014/01/23 Python
Python读取ini文件、操作mysql、发送邮件实例
2015/01/01 Python
python实现端口转发器的方法
2015/03/13 Python
python操作mysql数据库
2017/03/05 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
Python复制Word内容并使用格式设字体与大小实例代码
2018/01/22 Python
python 堆和优先队列的使用详解
2019/03/05 Python
python内置函数sorted()用法深入分析
2019/10/08 Python
python接口自动化框架实战
2020/12/23 Python
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
意大利时尚奢侈品店:D’Aniello Boutique
2021/01/19 全球购物
奥巴马英文演讲稿
2014/05/15 职场文书
综合素质自我评价评语
2015/03/06 职场文书
初中团委工作总结
2015/08/13 职场文书
Go使用协程交替打印字符
2021/04/29 Golang
MySQL RC事务隔离的实现
2022/03/31 MySQL
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android