Vue中props的使用详解


Posted in Javascript onJune 15, 2018

props属性是父子组件之间的通信桥梁。何为父子组件?从子组件的观点来看,他的上一级实例或组件即为他的父组件。我们知道,处于安全考虑,组件模板里我们无法直接使用父组件的data数据,使用props这个属性可以将父组件的数据传给子组件。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>props的测试</title>
  <script src="../js/vue.js"></script>
</head>
<body>
<div id="props">
  <Child message="父组件的message,我把他的内容重新定义了,但是父组件不会发生改变哦,因为没有绑定,哈哈!!"></Child>
  <hr />
  <input v-model="message"/>
  <Child :message='message'></Child>
</div>
<script>
  Vue.component('Child',{
    props: ['message'],
    template: '<span>{{ message }}</span>'
  });
  var vm = new Vue({
    el: '#props',
    data: {
      message: 'prop的测试'
    }
  });
</script>
</body>
</html>

代码效果图

在子组件中对父组件的数据进行处理。父组件的数据通过props传入子组件以后,在子组件中也可对数据进行相关处理,包括计算属性、data属性等。这样当子组件需要对数据进行处理时,避免了直接在父组件中对数据进行操作,而且由于props数据流单向性,在子组件中更改数据时,不会对父组件的数据产生影响。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>props的测试</title>
  <script src="../js/vue.js"></script>
</head>
<body>
<div id="props">
  <input v-model="message"/>
  <Child :message='message'></Child>
</div>
<script>
  Vue.component('Child',{
    props: ['message','todos'],
    template: '<span>{{ test }}</span>',
    computed: {
      test: function(){
        return this.message.trim().toUpperCase();
      }}
  });
  var vm = new Vue({
    el: '#props',
    data: {
      message: 'prop的测试'
    }
  });
</script>
</body>
</html>

代码效果图

代码效果图

prop的验证

 我们可以为组件的 prop 指定验证规则。如果传入的数据不符合要求,Vue 会发出警告。这对于开发给他人使用的组件非常有用。

要指定验证规则,需要用对象的形式来定义 prop,而不能用字符串数组

Vue.component('example',{
  props: {
    propA: String,
    propB: [Number,String]
}
});

总结

以上所述是小编给大家介绍的Vue中props的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
番茄的表单验证类代码修改版
Jul 18 Javascript
JQuery AJAX实现目录浏览与编辑的代码
Oct 21 Javascript
一样的table?不一样的table(可编辑状态table)
Sep 19 Javascript
JavaScript中的数据类型转换方法小结
Oct 26 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
原生js仿jquery animate动画效果
Jul 13 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
基于three.js编写的一个项目类示例代码
Jan 05 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
Jul 10 Javascript
vuejs中父子组件之间通信方法实例详解
Jan 17 Javascript
vue+swiper实现左右滑动的测试题功能
Oct 30 Javascript
基于jQuery实现的设置文本区域的光标位置
Jun 15 #jQuery
深入浅析Vue全局组件与局部组件的区别
Jun 15 #Javascript
react-native android状态栏的实现
Jun 15 #Javascript
JS实现监控微信小程序的原理
Jun 15 #Javascript
vue .sync修饰符的使用详解
Jun 15 #Javascript
vue项目webpack中Npm传递参数配置不同域名接口
Jun 15 #Javascript
vue和webpack项目构建过程常用的npm命令详解
Jun 15 #Javascript
You might like
PHP isset()与empty()的使用区别详解
2010/08/29 PHP
php中rename函数用法分析
2014/11/15 PHP
PHP操作MongoDB实现增删改查功能【附php7操作MongoDB方法】
2018/04/24 PHP
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
2010/01/05 Javascript
jquery 多级下拉菜单核心代码
2010/05/21 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
2014/01/14 Javascript
javascript使用数组的push方法完成快速排序
2014/09/15 Javascript
JS+CSS实现简单的二级下拉导航菜单效果
2015/09/21 Javascript
基于PHP和Mysql相结合使用jqGrid读取数据并显示
2015/12/02 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
JavaScript仿微信打飞机游戏
2020/07/05 Javascript
详解如何将angular-ui的图片轮播组件封装成一个指令
2017/05/09 Javascript
Angular实现的日程表功能【可添加及隐藏显示内容】
2017/12/27 Javascript
webpack的CSS加载器的使用
2018/09/11 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
Django跨域请求问题的解决方法示例
2018/06/16 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Django模板语言 Tags使用详解
2019/09/09 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
详解Python 循环嵌套
2020/07/09 Python
详解HTML5中垂直上下居中的解决方案
2017/12/20 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
印刷工程专业应届生求职信
2013/09/29 职场文书
教师队伍管理制度
2014/01/14 职场文书
最新会计专业求职信范文
2014/01/28 职场文书
中学自我评价
2014/01/31 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
农村门前三包责任书
2014/07/25 职场文书
2014迎国庆标语大全
2014/09/19 职场文书
群众路线教育实践活动心得体会(四风)
2014/11/03 职场文书
2015年工商所工作总结
2015/05/21 职场文书
2016年度农村党员干部主题教育活动总结
2016/04/06 职场文书
Python re.sub 反向引用的实现
2021/07/07 Python
Java如何实现通过键盘输入一个数组
2022/02/15 Java/Android
JS class语法糖的深入剖析
2022/07/07 Javascript