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匿名函数
Nov 25 Javascript
javascript仿php的print_r函数输出json数据
Sep 13 Javascript
浅析JavaScript中的常用算法与函数
Nov 21 Javascript
jQuery内置的AJAX功能和JSON的使用实例
Jul 27 Javascript
js中数组结合字符串实现查找(屏蔽广告判断url等)
Mar 30 Javascript
Javascript 实现放大镜效果实例详解
Dec 03 Javascript
微信小程序 Nginx环境配置详细介绍
Feb 14 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
vue.js input框之间赋值方法
Aug 24 Javascript
ES6 Object.assign()的用法及其使用
Jan 18 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
Aug 07 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
JAVA/JSP学习系列之七
2006/10/09 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
2010/05/06 PHP
PHP守护进程化在C和PHP环境下的实现
2017/11/21 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
jquery 最简单易用的表单验证插件
2010/02/27 Javascript
围观tangram js库
2010/12/28 Javascript
关于跨站脚本攻击问题
2011/12/22 Javascript
jquery 触发a链接点击事件解决方案
2013/05/02 Javascript
avalon js实现仿微博拖动图片排序
2015/08/14 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
JS简单去除数组中重复项的方法
2016/09/13 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
2016/11/09 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
jquery实现轮播图效果
2017/02/13 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
深入理解vue中的$set
2017/06/01 Javascript
vue父子组件的嵌套的示例代码
2017/09/08 Javascript
vue中本地静态图片路径写法
2018/03/06 Javascript
vue-cli3 项目从搭建优化到docker部署的方法
2019/01/28 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python版简单工厂模式
2017/10/16 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
PyQt 实现使窗口中的元素跟随窗口大小的变化而变化
2019/06/18 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
YOINS官网:时尚女装网上购物
2017/03/17 全球购物
行政部总经理岗位职责
2014/01/04 职场文书
工会主席岗位责任制
2014/02/11 职场文书
商场消防演习方案
2014/02/12 职场文书
元旦晚会策划方案
2014/02/18 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
乡镇党建工作汇报材料
2014/08/14 职场文书
2014年干部培训工作总结
2014/12/17 职场文书