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 相关文章推荐
jQuery 学习第五课 Ajax 使用说明
May 17 Javascript
13个绚丽的Jquery 界面设计网站推荐
Sep 28 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
浅析jquery的js图表组件highcharts
Mar 06 Javascript
javascript数据结构之二叉搜索树实现方法
Nov 25 Javascript
使用three.js 画渐变的直线
Jun 05 Javascript
实例讲解JavaScript中call、apply、bind方法的异同
Sep 13 Javascript
Angularjs分页查询的实现
Feb 24 Javascript
分享Bootstrap简单表格、表单、登录页面
Aug 04 Javascript
Vue实现用户自定义字段显示数据的方法
Aug 28 Javascript
详解vue-router传参的两种方式
Sep 10 Javascript
微信小程序实现弹框效果
May 26 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 的 __FILE__ 常量
2007/01/15 PHP
PHP 组件化编程技巧
2009/06/06 PHP
php程序效率优化的一些策略小结
2010/07/17 PHP
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
2014/07/05 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
thinkphp中AJAX返回ajaxReturn()方法分析
2016/12/06 PHP
magento后台无法登录解决办法的两种方法
2016/12/09 PHP
PHP封装的非对称加密RSA算法示例
2018/05/28 PHP
JQuery动画animate的stop方法使用详解
2014/05/09 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
javascript html5移动端轻松实现文件上传
2020/03/27 Javascript
js仿新浪微博消息发布功能
2017/02/17 Javascript
nodejs开发——express路由与中间件
2017/03/24 NodeJs
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
学习JS中的DOM节点以及操作
2018/04/30 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
详解Vue3.0 + TypeScript + Vite初体验
2021/02/22 Vue.js
[02:04]2018DOTA2亚洲邀请赛Secret赛前采访
2018/04/03 DOTA
Linux 发邮件磁盘空间监控(python)
2016/04/23 Python
python append、extend与insert的区别
2016/10/13 Python
深入理解Python爬虫代理池服务
2018/02/28 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
python词云库wordcloud的使用方法与实例详解
2020/02/17 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
python中常用的数据结构介绍
2021/01/12 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
体育专业个人的求职信范文
2013/09/21 职场文书
财务会计实习报告体会
2013/12/20 职场文书
幼儿园亲子活动方案
2014/01/29 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
浅谈Java父子类加载顺序
2021/08/04 Java/Android
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python