简单理解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 相关文章推荐
HTML代码中标签的全部属性 中文注释说明
Mar 26 Javascript
javascript控制frame,iframe的src属性代码
Dec 31 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
May 25 Javascript
javascript中的对象创建 实例附注释
Feb 08 Javascript
js实现当前输入框高亮显示的方法
Aug 19 Javascript
JavaScript常用字符串与数组扩展函数小结
Apr 24 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
Nov 20 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
node实现定时发送邮件的示例代码
Aug 26 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
Feb 27 jQuery
JavaScript中变量、指针和引用功能与操作示例
Aug 04 Javascript
通过原生vue添加滚动加载更多功能
Nov 21 Javascript
利用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实现jQuery扩展函数
2009/10/30 PHP
php防止SQL注入详解及防范
2013/11/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(九)
2014/06/24 PHP
判断、添加和删除WordPress置顶文章的相关PHP函数小结
2015/12/10 PHP
利用php输出不同的心形图案
2016/04/22 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
几款极品的javascript压缩混淆工具
2007/05/16 Javascript
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
Javascript常用字符串判断函数代码分享
2014/12/08 Javascript
javascript内置对象操作详解
2015/02/04 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
Javascript实现单例模式
2016/01/24 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
vue 使用html2canvas将DOM转化为图片的方法
2018/09/11 Javascript
python将人民币转换大写的脚本代码
2013/02/10 Python
Python中super的用法实例
2015/05/28 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
python实现图片插入文字
2019/11/26 Python
python3中rank函数的用法
2019/11/27 Python
python pyqtgraph 保存图片到本地的实例
2020/03/14 Python
python属于解释型语言么
2020/06/15 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
酒店执行总经理岗位职责
2013/12/15 职场文书
揭牌仪式主持词
2014/03/19 职场文书
教师教学评估方案
2014/05/09 职场文书
留守儿童工作方案
2014/06/02 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
教师节祝酒词
2015/08/11 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
nginx搭建NFS网络文件系统
2022/04/14 Servers