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 相关文章推荐
图片自动缩小的js代码,用以防止图片撑破页面
Mar 12 Javascript
jquery提示 &quot;object expected&quot;的解决方法
Dec 13 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
jQuery三级下拉列表导航菜单代码分享
Apr 15 Javascript
JS实现超简单的鼠标拖动效果
Nov 02 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
jquery中实现时间戳与日期相互转换
Apr 12 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
js清除浏览器缓存的几种方法
Mar 15 Javascript
小程序实现列表删除功能
Oct 30 Javascript
js如何获取图片url的Blob值并预览示例代码
Mar 07 Javascript
element-ui 实现响应式导航栏的示例代码
May 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
社区(php&amp;&amp;mysql)四
2006/10/09 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
js判断浏览器是否支持html5
2014/08/17 Javascript
jQuery实现拖拽效果插件的方法
2015/03/23 Javascript
JavaScript实现简单的tab选项卡切换
2016/01/05 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
React实现双向绑定示例代码
2016/09/19 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
vue.js整合mint-ui里的轮播图实例代码
2017/12/27 Javascript
vue数组对象排序的实现代码
2018/06/20 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
小程序云开发实战小结
2018/10/25 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
2018/11/08 Javascript
vue中各种通信传值方式总结
2019/02/14 Javascript
vue实现百度搜索功能
2020/12/28 Javascript
jquery获取input输入框中的值
2019/11/13 jQuery
es6函数之尾调用优化实例分析
2020/04/25 Javascript
[01:05:36]VP vs TNC Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python对数据库操作
2016/03/28 Python
Python中的日期时间处理详解
2016/11/17 Python
Python3 循环语句(for、while、break、range等)
2017/11/20 Python
python+matplotlib绘制3D条形图实例代码
2018/01/17 Python
Python冲顶大会 快来答题!
2018/01/17 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
pytorch 获取层权重,对特定层注入hook, 提取中间层输出的方法
2019/08/17 Python
python topk()函数求最大和最小值实例
2020/04/02 Python
CSS3实现伪类hover离开时平滑过渡效果示例
2017/08/10 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
小学三年级数学教学反思
2014/01/31 职场文书
公司建议书怎么写
2014/05/15 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
病危通知书样本
2015/04/17 职场文书
《给予树》教学反思
2016/03/03 职场文书