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 相关文章推荐
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
Jun 02 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
js 通过cookie实现刷新不变化树形菜单
Oct 30 Javascript
jQuery学习笔记之创建DOM元素
Jan 19 Javascript
javascript中错误使用var造成undefined
Mar 31 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
Dec 12 Javascript
微信小程序 图片边框解决方法
Jan 16 Javascript
基于jQuery使用Ajax动态执行模糊查询功能
Jul 05 jQuery
Layui 设置select下拉框自动选中某项的方法
Aug 14 Javascript
JavaScript学习笔记之基于定时器实现图片无缝滚动功能详解
Jan 09 Javascript
layui select 禁止点击的实现方法
Sep 05 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 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
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHPCMS V9 添加二级导航的思路详解
2016/10/20 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP强制转化的形式整理
2020/05/22 PHP
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
jquery实现公告翻滚效果
2015/02/27 Javascript
js实现非常简单的焦点图切换特效实例
2015/05/07 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
AngularJS表单验证中级篇(3)
2016/09/28 Javascript
分享一个精简的vue.js 图片lazyload插件实例
2017/03/13 Javascript
js数字滑动时钟的简单实现(示例讲解)
2017/08/14 Javascript
JavaScript学习笔记之函数记忆
2017/09/06 Javascript
详解vue表单——小白速看
2018/04/08 Javascript
浅谈Angular HttpClient简单入门
2018/05/04 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
JavaScript如何判断input数据类型
2020/02/06 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
[00:52]黑暗之门更新 新英雄孽主驾临DOTA2
2016/08/24 DOTA
[01:30]2016国际邀请赛中国区预选赛神秘商店火爆开启
2016/06/26 DOTA
解读Python中degrees()方法的使用
2015/05/18 Python
200行自定义python异步非阻塞Web框架
2017/03/15 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
python 爬取小说并下载的示例
2020/12/07 Python
机械专业个人求职自荐信格式
2013/09/21 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
勇敢的心观后感
2015/06/09 职场文书
小学运动会加油稿
2015/07/22 职场文书
企业财务管理制度范本
2015/08/04 职场文书
网络安全倡议书(3篇)
2019/09/18 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python