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中worker事件api
Dec 25 Javascript
js返回顶部实例分享
Dec 21 Javascript
详解vue-cli 脚手架项目-package.json
Jul 04 Javascript
JS 实现banner图片轮播效果(鼠标事件)
Aug 04 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
angular ng-model 无法获取值的处理方法
Oct 02 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
jQuery.parseJSON()函数详解
Feb 28 jQuery
Vue 2.0 中依赖注入 provide/inject组合实战
Jun 20 Javascript
基于原生js实现九宫格算法代码实例
Jul 03 Javascript
Vue Router中应用中间件的方法
Aug 06 Javascript
JS不要再到处使用绝对等于运算符了
Apr 30 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 获取mysql数据库信息代码
2009/03/12 PHP
php 按指定元素值去除数组元素的实现方法
2011/11/04 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
2011/11/25 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
JavaScript实际应用:innerHTMl和确认提示的使用
2006/06/22 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
基于jquery的跨域调用文件
2010/11/19 Javascript
一个JQuery写的点击上下滚动的小例子
2011/08/27 Javascript
基于JQuery 选择器使用说明介绍
2013/04/18 Javascript
当鼠标滑过文本框自动选中输入框内容的JS代码分享
2013/11/26 Javascript
JavaScript获取Url里的参数
2014/12/18 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
AngularJS中的指令全面解析(必看)
2016/05/20 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
强大Vue.js组件浅析
2016/09/12 Javascript
使用命令行工具npm新创建一个vue项目的方法
2017/12/27 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
JS实现字体背景跑马灯
2020/01/06 Javascript
Python使用metaclass实现Singleton模式的方法
2015/05/05 Python
python任务调度实例分析
2015/05/19 Python
python3 shelve模块的详解
2017/07/08 Python
python实现linux下抓包并存库功能
2018/07/18 Python
Django web框架使用url path name详解
2019/04/29 Python
Python tkinter常用操作代码实例
2020/01/03 Python
python中使用paramiko模块并实现远程连接服务器执行上传下载功能
2020/02/29 Python
Delphi软件工程师试题
2013/01/29 面试题
大学总结自我鉴定
2014/01/18 职场文书
高中生自我评语大全
2014/01/19 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
大学学习个人的自我评价
2014/02/18 职场文书
产品质量承诺书
2014/03/27 职场文书
教师个人自我评价范文
2014/04/13 职场文书
党员先进性教育整改措施
2014/09/18 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书