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 相关文章推荐
写了10年的Javascript也未必全了解的连续赋值运算
Mar 25 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
Dec 06 Javascript
jQuery使用hide方法隐藏元素自身用法实例
Mar 30 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
Apr 30 Javascript
BootStrap扔进Django里的方法详解
May 13 Javascript
js的各种排序算法实现(总结)
Jul 23 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
使用Vue.js创建一个时间跟踪的单页应用
Nov 28 Javascript
Ajax 加载数据 练习代码
Jan 05 Javascript
bootstrap table sum总数量统计实现方法
Oct 29 Javascript
JS数据类型判断的几种常用方法
Jul 07 Javascript
Node.js 中如何收集和解析命令行参数
Jan 08 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
一些花式咖啡的配方
2021/03/03 冲泡冲煮
php开发环境配置记录
2011/01/14 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
ThinkPHP3.1查询语言详解
2014/06/19 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
一些老手都不一定知道的JavaScript技巧
2014/05/06 Javascript
基于编写jQuery的无缝滚动插件
2014/08/02 Javascript
javascript实现选中复选框后相关输入框变灰不可用的方法
2015/08/11 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
jQuery仿IOS弹出框插件
2017/02/18 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
python清除字符串里非数字字符的方法
2015/07/02 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
python实现QQ批量登录功能
2019/06/19 Python
python获取Pandas列名的几种方法
2019/08/07 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
传播学毕业生求职信
2013/10/11 职场文书
校园达人秀策划书
2014/01/12 职场文书
导游实习生自荐书
2014/01/28 职场文书
大学运动会入场词
2014/02/22 职场文书
倡议书范文
2014/04/16 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
2015试用期转正工作总结
2014/12/12 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
TensorFlow的自动求导原理分析
2021/05/26 Python
golang生成并解析JSON
2022/04/14 Golang
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android