Vue.js组件使用props传递数据的方法


Posted in Javascript onOctober 19, 2019

本文实例为大家分享了Vue.js使用props传递数据的具体代码,供大家参考,具体内容如下

基本用法

通常父组件的模板中包含子组件,父组件要正向地向子组件传递数据或参数,子组件接收到后根据参数的不同来渲染不同的内容或执行操作。这个正向传递数据的过程就是通过props来实现的。

在组件中,使用选项props来声明需要从父级接收的数据,props的值可以是两种,一种是字符串数组,一种是对象。

示例:构造一个数组,接收一个来自父组件的message,并把它再组件模板中渲染

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <title>props</title>
</head>
<body>
  <div id="myApp">
    <my-component message="来自父组件的数据"></my-component>
  </div>
  <script>
    Vue.component('my-component',{
      props: ['message'],
      template: '<div>{{message}}</div>'
    });

    var myApp = new Vue({
      el: '#myApp'
    });
  </script>
</body>
</html>

props中声明的数据与组件函数return的数据主要区别是:**props的数据来自父级,而data中的数据是组件自己的数据,作用域是组件本身。**这两种数据都可以在模板template及计算属性computed和方法methods中使用。

上例的数据message就是通过props从父级传递过来的,在组件的字的那个一标签上直接写该props的名称,如果要传递多个数据,在props数组中添加项即可。

注意:由于HTML特性不区分大小写,当使用DOM模板时,驼峰命名的props名称要转为短横分割命名,例如:

<div id="app">
    <my-component warning-text="提示信息"></my-component>
</div>
<script>
//如果使用字符串模板,可以忽略这些限制
  Vue.component('my-component',{
    props: ['warningText'],
    template: '<div>{{warningText}}</div>'
  });

  var app = new Vue({
    el: '#app'
  });
</script>

有时候,传递的数据并不是直接写死的,而是来自父级的动态数据,这时候可以使用指令v-bing来动态绑定props的值,当父组件的数据变化时,也会传递给子组件。

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <script src="https://unpkg.com/vue/dist/vue.js"></script>
  <title>动态绑定</title>
</head>
<body>
  <div id="app">
    <input type="text" v-model="parentMessage">
    <my-component :message="parentMessage"></my-component>
  </div>
  <script>
    Vue.component('my-component',{
      props: ['message'],
      template: '<div>{{message}}</div>'
    });

    var app = new Vue({
      el: '#app',
      data: {
        parentMessage: ''
      }
    });
  </script>
</body>
</html>

Vue.js组件使用props传递数据的方法

上例使用v-model绑定了父级的数据parentMessage,当通过输入框任意输入时,子组件接受到的props "message"也会实时响应,并更新组件模板。

更多教程点击《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的图片左右无缝滚动插件
May 23 Javascript
jQuery输入城市查看地图使用介绍
May 08 Javascript
JS中prototype关键字的功能介绍及使用示例
Jul 21 Javascript
Node.js与PHP、Python的字符处理性能对比
Jul 06 Javascript
jquery引用方法时传递参数原理分析
Oct 13 Javascript
jQuery设置和移除文本框默认值的方法
Mar 09 Javascript
javascript表达式和运算符详解
Feb 07 Javascript
js实现适配不同的屏幕大小
Apr 10 Javascript
AngularJs 终极购物车(实例讲解)
Nov 08 Javascript
Vue.js实现图片的随意拖动方法
Mar 08 Javascript
JS事件绑定的常用方式实例总结
Mar 02 Javascript
(开源)微信小程序+mqtt,esp8266温湿度读取
Apr 02 Javascript
Vue.js数字输入框组件使用方法详解
Oct 19 #Javascript
JavaScript闭包相关知识解析
Oct 19 #Javascript
Vue.js组件通信之自定义事件详解
Oct 19 #Javascript
Vue.js自定义指令学习使用详解
Oct 19 #Javascript
Vue.js标签页组件使用方法详解
Oct 19 #Javascript
基于JavaScript获取base64图片大小
Oct 18 #Javascript
react MPA 多页配置详解
Oct 18 #Javascript
You might like
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
JavaScript调用客户端的可执行文件(示例代码)
2013/11/28 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
jquery操作checked属性以及disabled属性的多种方法
2014/06/20 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
2015/08/12 Javascript
浅谈Javascript中substr和substring的区别
2015/09/30 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
JS 滚动事件window.onscroll与position:fixed写兼容IE6的回到顶部组件
2016/10/10 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
详解为Bootstrap Modal添加拖拽的方法
2018/01/05 Javascript
微信小程序上传图片功能(附后端代码)
2020/06/19 Javascript
js实现无限层级树形数据结构(创新算法)
2020/02/27 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
[04:16]DOTA2英雄梦之声_第09期_斧王
2014/06/21 DOTA
[04:19]DOTA2亚洲邀请赛 现场花絮
2015/03/11 DOTA
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
Python面向对象程序设计类的多态用法详解
2019/04/12 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
Crocs欧洲官网:Crocs Europe
2020/01/14 全球购物
中秋节礼品促销方案
2014/02/02 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
2014年房产销售工作总结
2014/12/08 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书
青年文明号创建口号大全
2015/12/25 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang