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 相关文章推荐
一个刚完成的layout(拖动流畅,不受iframe影响)
Aug 17 Javascript
jQuery图片滚动图片的效果(另类实现)
Jun 02 Javascript
JavaScript更改原始对象valueOf的方法
Mar 19 Javascript
jquery简单实现带渐显效果的选项卡菜单代码
Sep 01 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
Oct 29 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
在一个页面重复使用一个js函数的方法详解
Dec 26 Javascript
jQuery实现页面顶部下拉广告
Dec 30 Javascript
利用jquery如何从json中读取数据追加到html中
Dec 01 jQuery
基于JavaScript实现控制下拉列表
May 08 Javascript
JavaScript 接口原理与用法实例详解
May 12 Javascript
vue浏览器返回监听的具体步骤
Feb 03 Vue.js
基于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 获取百度的热词数据的代码
2012/02/18 PHP
php实现监控varnish缓存服务器的状态
2014/12/30 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
2015/05/25 PHP
PHP使用pear自带的mail类库发邮件的方法
2015/07/08 PHP
Netbeans 8.2将支持PHP7 更精彩
2016/06/13 PHP
PHP如何搭建百度Ueditor富文本编辑器
2018/09/21 PHP
解决node-webkit 不支持html5播放mp4视频的方法
2015/03/11 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
vue.js指令v-for使用及索引获取
2016/11/03 Javascript
nodejs根据ip数组在百度地图中进行定位
2017/03/06 NodeJs
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
深入解析nodejs HTTP服务
2017/07/25 NodeJs
详解webpack + vue + node 打造单页面(入门篇)
2017/09/23 Javascript
Angular.js通过自定义指令directive实现滑块滑动效果
2017/10/13 Javascript
JavaScript实现网页tab栏效果制作
2020/11/20 Javascript
在Python的Django框架中调用方法和处理无效变量
2015/07/15 Python
Django处理多用户类型的方法介绍
2019/05/18 Python
numpy中的meshgrid函数的使用
2019/07/31 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python实现高斯(Gauss)迭代法的例子
2019/11/20 Python
Python输出指定字符串的方法
2020/02/06 Python
python 画条形图(柱状图)实例
2020/04/24 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
高一家长会邀请函
2014/01/12 职场文书
大学军训感言200字
2014/02/26 职场文书
我的祖国演讲稿
2014/05/04 职场文书
设备售后服务承诺书
2014/05/30 职场文书
小学班主任个人总结
2015/03/03 职场文书
亮剑观后感
2015/06/05 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
微信小程序中使用vant框架的具体步骤
2022/02/18 Javascript