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窗口功能指南之在窗口中书写内容
Jul 21 Javascript
ie 调试javascript的工具
Apr 29 Javascript
Jquery 获得服务器控件值的方法小结
May 11 Javascript
jquery ajax修改全局变量示例代码
Nov 08 Javascript
JS中FRAME的操作问题实例分析
Oct 21 Javascript
JavaScript实现的一个日期格式化函数分享
Dec 06 Javascript
JavaScript学习笔记之JS函数
Jan 22 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
基于Bootstrap里面的Button dropdown打造自定义select
May 30 Javascript
bootstrap Table的一些小操作
Nov 01 Javascript
微信小程序封装的HTTP请求示例【附升级版】
May 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中的动态调用实例分析
2015/01/07 PHP
PHP 9 大缓存技术总结
2015/09/17 PHP
javascript学习网址备忘
2007/05/29 Javascript
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
JS 跳转页面延迟2种方法
2013/03/29 Javascript
用JS实现3D球状标签云示例代码
2013/12/01 Javascript
javascript实现阻止iOS APP中的链接打开Safari浏览器
2014/06/12 Javascript
javascript计时器详解
2015/02/28 Javascript
jquery实现弹出层效果实例
2015/05/19 Javascript
JavaScript中的原始值和复杂值
2016/01/07 Javascript
理解AngularJs篇:30分钟快速掌握AngularJs
2016/12/23 Javascript
JavaScript实现弹出广告功能
2017/03/30 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
2018/07/05 jQuery
Node.js如何对SQLite的async/await封装详解
2019/02/14 Javascript
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
Layui弹框中数据表格中可双击选择一条数据的实现
2020/05/06 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[01:04:39]OG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
Python DataFrame设置/更改列表字段/元素类型的方法
2018/06/09 Python
python 获取图片分辨率的方法
2019/01/08 Python
使用Python第三方库pygame写个贪吃蛇小游戏
2020/03/06 Python
python中复数的共轭复数知识点总结
2020/12/06 Python
365 Tickets英国:全球景点门票
2019/07/06 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
Java里面Pass by value和Pass by Reference是什么意思
2016/05/02 面试题
最新自我评价范文
2013/11/16 职场文书
学生打架检讨书1000字
2014/01/16 职场文书
运动会横幅标语
2014/06/17 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
2014年反腐倡廉工作总结
2014/12/05 职场文书
2015年招生工作总结
2015/05/04 职场文书
《将心比心》教学反思
2016/02/23 职场文书
SpringBoot整合MongoDB的实现步骤
2021/06/23 MongoDB
springboot用户数据修改的详细实现
2022/04/06 Java/Android
如何Tomcat中使用ipv6地址
2022/05/06 Servers