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 03 Javascript
json原理分析及实例介绍
Nov 29 Javascript
JS中 用户登录系统的解决办法
Apr 15 Javascript
使用AngularJS实现可伸缩的页面切换的方法
Jun 19 Javascript
BootStrap中的Fontawesome 图标
May 25 Javascript
vue实现学生录入系统之添加删除功能
Jul 11 Javascript
浅谈ElementUI中switch回调函数change的参数问题
Aug 24 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
vue项目中仿element-ui弹框效果的实例代码
Apr 22 Javascript
基于JS实现前端压缩上传图片的实例代码
May 14 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 Javascript
继承行为在 ES5 与 ES6 中的区别详解
Dec 24 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
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
微信API接口大全
2015/04/15 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
php实现产品加入购物车功能(1)
2020/07/23 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
javascript事件模型代码
2007/07/01 Javascript
转换json格式的日期为Javascript对象的函数
2010/07/13 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
深入分析JQuery和JavaScript的异同
2014/10/23 Javascript
删除Javascript Object中间的key
2014/11/18 Javascript
JQuery实现样式设置、追加、移除与切换的方法
2015/06/11 Javascript
收藏AngularJS中最重要的核心功能
2017/07/09 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
javascript异步编程的六种方式总结
2019/05/17 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
vue - props 声明数组和对象操作
2020/07/30 Javascript
antd vue table跨行合并单元格,并且自定义内容实例
2020/10/28 Javascript
linux下python使用sendmail发送邮件
2018/05/22 Python
pymongo中group by的操作方法教程
2019/03/22 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
Python是什么 Python的用处
2020/05/26 Python
自我鉴定书范文
2013/10/02 职场文书
积极分子思想汇报
2014/01/04 职场文书
工程造价专业求职信
2014/07/17 职场文书
党支部组织生活会整改方案
2014/09/30 职场文书
2014村书记党建工作汇报材料
2014/11/02 职场文书
2015年综治维稳工作总结
2015/04/07 职场文书
银行反洗钱宣传活动总结
2015/05/08 职场文书
导游词之江西赣州
2019/10/15 职场文书
python3实现无权最短路径的方法
2021/05/12 Python
AngularJS实现多级下拉框
2022/03/25 Javascript