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 相关文章推荐
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
详解堆的javascript实现方法
Nov 29 Javascript
通过Ajax使用FormData对象无刷新上传文件方法
Dec 08 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
实例解析js中try、catch、finally的执行规则
Feb 24 Javascript
Vue声明式渲染详解
May 17 Javascript
element上传组件循环引用及简单时间倒计时的实现
Oct 01 Javascript
JS使用栈判断给定字符串是否是回文算法示例
Mar 04 Javascript
vue图片加载失败时用默认图片替换的方法
Aug 29 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
js实现飞机大战小游戏
Aug 26 Javascript
JavaScript 数组去重详解
Sep 15 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中修改浏览器的User-Agent来伪装你的浏览器和操作系统
2011/07/29 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
2014/12/25 PHP
PHP图片加水印实现方法
2016/05/06 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
元素的内联事件处理函数的特殊作用域在各浏览器中存在差异
2011/01/12 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
通过一段代码简单说js中的this的使用
2013/07/23 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
详谈js中window.location.search的用法和作用
2017/02/13 Javascript
js模态对话框使用方法详解
2017/02/16 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
用node撸一个监测复联4开售短信提醒的实现代码
2019/04/10 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
Python中的迭代器漫谈
2015/02/03 Python
调试Python程序代码的几种方法总结
2015/04/28 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
pandas.cut具体使用总结
2019/06/24 Python
python GUI库图形界面开发之PyQt5动态加载QSS样式文件
2020/02/25 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
英国在线自行车店:Merlin Cycles
2018/08/20 全球购物
初中美术教学反思
2014/01/29 职场文书
西式结婚主持词
2014/03/14 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
致运动员加油稿
2015/07/21 职场文书
幼儿园安全教育随笔
2015/08/14 职场文书
九年级英语教学反思
2016/02/15 职场文书
Python 语言实现六大查找算法
2021/06/30 Python
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers