简单理解vue中Props属性


Posted in Javascript onOctober 27, 2016

本文实例为大家解析了vue中Props的属性,供大家参考,具体内容如下

使用 Props 传递数据

组件实例的作用域是孤立的。这意味着不能并且不应该在子组件的模板内直接引用父组件的数据。可以使用 props 把数据传给子组件。

“prop” 是组件数据的一个字段,期望从父组件传下来。子组件需要显式地用 props 选项 声明 props:

Vue.component('child', {
 // 声明 props
 props: ['msg'],
 // prop 可以用在模板内
 // 可以用 `this.msg` 设置
 template: '<span>{{ msg }}</span>'
})

然后向它传入一个普通字符串:

<child msg="hello!"></child>

举例

错误写法:

<!DOCTYPE html>
<html lang="en">

<head>
 <script type="text/javascript" src="./vue.js"></script>
 <meta charset="UTF-8">
 <title>vue.js</title>
</head>

<body>
<pre>
 //使用 props 传输资料予子组件
 //props , data 重复名称会出现错误


</pre>
<div id="app1">
 <child mssage="hello!"></child>
</div>
<script>
 Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>{{ msg }}{{nihao}}{{nisha}}</span>',
 data: function() {
 return {
 mssage: 'boy'
 }
 }
 });
 var vm = new Vue({
 el: '#app1'
 })
</script>
</body>

</html>

正确写法:

<!DOCTYPE html>
<html lang="en">

<head>
 <script type="text/javascript" src="./vue.js"></script>
 <meta charset="UTF-8">
 <title>vue.js</title>
</head>

<body>
<pre>
 //使用 props 传输资料予子组件
 //props , data 重复名称会出现错误


</pre>
<div id="app1">
 <child mssage="hello!"></child>
</div>
<script>
 Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>{{ msg }}{{nihao}}{{nisha}}</span>'
 });
 var vm = new Vue({
 el: '#app1'
 })
</script>
</body>

</html>

props 传入多个数据(顺序问题)

第一种:

HTML             

<div id="app1">
<child msg="hello!"></child>
<child nihao="hello1!"></child>
<child nisha="hello2!"></child>
</div>

JS

Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>{{ msg }}{{nihao}}{{nisha}}</span>',
 /*data: function() {
 return {
 msg: 'boy'
 }
 }*/
 });
 var vm = new Vue({
 el: '#app1'
 })

结果:hello! hello1! hello2!

第二种:

HTML

<div id="app1">
<child msg="hello!"></child>
 <child nihao="hello1!"></child>
 <child nisha="hello2!"></child>
</div>

JS

Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>123{{ msg }}{{nihao}}{{nisha}}</span>',
 /*data: function() {
 return {
 msg: 'boy'
 }
 }*/
 });
 var vm = new Vue({
 el: '#app1'
 })

结果:123hello! 123hello1! 123hello2!

第三种:

HTML

<div id="app1">
<child msg="hello!"></child>
<child nihao="hello1!"></child>
 <child nisha="hello2!"></child>
</div>

JS

Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>{{ msg }}{{nihao}}{{nisha}}123</span>',
 /*data: function() {
 return {
 msg: 'boy'
 }
 }*/
 });
 var vm = new Vue({
 el: '#app1'
 })

结果:hello! 123 hello1! 123 hello2!123

第四种:

HTML                 

<div id="app1">
<child msg="hello!"></child>
<child nihao="hello1!"></child>
<child nisha="hello2!"></child>
</div>

JS

Vue.config.debug = true;
 Vue.component('child', {
 // declare the props
 props: ['msg','nihao','nisha'],
 // the prop can be used inside templates, and will also
 // be set as `this.msg`
 template: '<span>{{ msg }}123{{nihao}}{{nisha}}123</span>',
 /*data: function() {
 return {
 msg: 'boy'
 }
 }*/
 });
 var vm = new Vue({
 el: '#app1'
 })

结果:hello! 123 123hello1! 123hello2!

结论:

在props 中传入多个数据是,如果在父组件的模板类添加其他元素或者字符会有:
1-在最前面加入—每个子组件渲染出来都会在其前面加上

2-在最后面加入—每个子组件渲染出来都会在其后面加上

3-在中间加入—他前面子组件后面加上,后面的子组件后面加上

参考: http://cn.vuejs.org/guide/components.html#Props

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用apply方法处理数组的三个技巧[译]
Sep 20 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
JS未跨域操作iframe里的DOM
Jun 01 Javascript
React实现双向绑定示例代码
Sep 19 Javascript
JavaScript省市区三级联动菜单效果
Sep 21 Javascript
学好js,这些js函数概念一定要知道【推荐】
Jan 19 Javascript
react-router JS 控制路由跳转实例
Jun 15 Javascript
关于jquery layui弹出层的使用方法
Apr 21 jQuery
纯JS实现可用于页码更换的飞页特效示例
May 21 Javascript
webpack 开发和生产并行设置的方法
Nov 08 Javascript
解决layui表格的表头不滚动的问题
Sep 04 Javascript
使用jquery实现轮播图效果
Jan 02 jQuery
利用React-router+Webpack快速构建react程序
Oct 27 #Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 #Javascript
浅析如何利用JavaScript进行语音识别
Oct 27 #Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
Oct 27 #Javascript
简单理解vue中track-by属性
Oct 26 #Javascript
javascript iframe跨域详解
Oct 26 #Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 #Javascript
You might like
php面象对象数据库操作类实例
2014/12/02 PHP
php实现水印文字和缩略图的方法示例
2016/12/29 PHP
一些有关检查数据的JS代码
2006/09/07 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
javascript教程:关于if简写语句优化的方法
2014/05/17 Javascript
JavaScript实现的冒泡排序法及统计相邻数交换次数示例
2017/04/26 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
JavaScript中call和apply方法的区别实例分析
2018/08/03 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
javascript操作元素的常见方法小结
2019/11/13 Javascript
解决vue.js中settimeout遇到的问题(时间参数短效果不稳定)
2020/07/21 Javascript
ansible作为python模块库使用的方法实例
2017/01/17 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python制作豆瓣图片的爬虫
2017/12/28 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python celery分布式任务队列的使用详解
2019/07/08 Python
Python API自动化框架总结
2019/11/12 Python
基于Python实现视频的人脸融合功能
2020/06/12 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
在Python中实现字典反转案例
2020/12/05 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
德国低价购买灯具和家具网站:Style-home.de
2016/11/25 全球购物
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
比较基础的php面试题及答案-编程题
2012/10/14 面试题
中专生学习生活的自我评价分享
2013/10/27 职场文书
《金钱的魔力》教学反思
2014/02/24 职场文书
幼儿园亲子活动总结
2014/04/26 职场文书
落实八项规定专题民主生活会对照检查材料
2014/09/15 职场文书
2014年环保局工作总结
2014/12/11 职场文书
老人节主持词
2015/07/04 职场文书
九不准学习心得体会
2016/01/23 职场文书
2016暑期政治学习心得体会
2016/01/23 职场文书