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几个不错的函数 $$()
Oct 09 Javascript
Javascript string 扩展库代码
Apr 09 Javascript
Dom与浏览器兼容性说明
Oct 25 Javascript
javascript中String类的subString()方法和slice()方法
May 24 Javascript
javascript小组件 原生table排序表格脚本(兼容ie firefox opera chrome)
Jul 25 Javascript
jquery实现控制表格行高亮实例
Jun 05 Javascript
html的DOM中Event对象onblur事件用法实例
Jan 21 Javascript
vue2.0开发实践总结之入门篇
Dec 06 Javascript
获取当前按钮或者html的ID名称实例(推荐)
Jun 23 Javascript
vue 中滚动条始终定位在底部的方法
Sep 03 Javascript
ajaxfileupload.js实现上传文件功能
Apr 19 Javascript
JavaScript本地储存:localStorage、sessionStorage、cookie的使用
Oct 13 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/02 无线电
php include的妙用,实现路径加密
2008/07/29 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
laravel接管Dingo-api和默认的错误处理方式
2019/10/25 PHP
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
解决javascript:window.close()在chrome,Firefox下失效的问题
2013/05/07 Javascript
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
2014/02/12 Javascript
jQuery中wrapInner()方法用法实例
2015/01/16 Javascript
jquery带下拉菜单和焦点图代码分享
2015/08/24 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
学习使用grunt来打包JavaScript和CSS程序的教程
2016/01/04 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
js实现rem自动匹配计算font-size的示例
2017/11/18 Javascript
微信小程序接入vant Weapp组件的详细步骤
2020/10/28 Javascript
antd的select下拉框因为数据量太大造成卡顿的解决方式
2020/10/31 Javascript
python中的编码知识整理汇总
2016/01/26 Python
Python断言assert的用法代码解析
2018/02/03 Python
Python字符串、整数、和浮点型数相互转换实例
2018/08/04 Python
Flask核心机制之上下文源码剖析
2018/12/25 Python
10 分钟快速入门 Python3的教程
2019/01/29 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
Python autoescape标签用法解析
2020/01/17 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
大学毕业生简单自荐信
2013/11/05 职场文书
班长岗位职责
2013/11/10 职场文书
行政人事岗位职责
2014/03/17 职场文书
国际商务专业求职信
2014/07/15 职场文书
2014年群众路线党员自我评议
2014/09/24 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
学校2014年度工作总结
2014/12/06 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL