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 相关文章推荐
让FireFox支持innerText的实现代码
Dec 01 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
Feb 06 Javascript
运算符&amp;&amp;的三个不同层次
Apr 07 Javascript
深入理解javascript严格模式(Strict Mode)
Nov 28 Javascript
Ionic实现页面下拉刷新(ion-refresher)功能代码
Jun 03 Javascript
Javascript缓存API
Jun 14 Javascript
Vue数据驱动模拟实现3
Jan 11 Javascript
easyUI combobox实现联动效果
Jan 17 Javascript
网页中右键功能的实现方法之contextMenu的使用
Feb 20 Javascript
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
Nov 05 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
Aug 16 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
php与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
解析PHP的session过期设置
2013/06/29 PHP
Laravel 5框架学习之表单
2015/04/08 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
PHP随机生成中文段落示例【测试网站内容时使用】
2020/04/26 PHP
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
jquery延迟加载外部js实现代码
2013/01/11 Javascript
js时间戳转为日期格式的方法
2015/12/28 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
在小程序中使用Echart图表的示例代码
2018/08/02 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
Python实现的求解最大公约数算法示例
2018/05/03 Python
python对视频画框标记后保存的方法
2018/12/07 Python
python实现文本界面网络聊天室
2018/12/12 Python
python 字符串追加实例
2019/07/20 Python
Python Opencv图像处理基本操作代码详解
2020/08/31 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
如何给HTML标签中的文本设置修饰线
2019/11/18 HTML / CSS
英国假睫毛购买网站:FalseEyelashes.co.uk
2018/05/23 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
Lookfantastic俄罗斯:欧洲在线化妆品零售商
2019/08/06 全球购物
植树造林的宣传标语
2014/06/23 职场文书
2014幼儿园保育员工作总结
2014/11/10 职场文书
后备干部推荐材料
2014/12/24 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
幼儿园推普周活动总结
2015/05/07 职场文书
党员转正意见怎么写
2015/06/03 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
详解Python牛顿插值法
2021/05/11 Python
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL