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 相关文章推荐
js版本A*寻路算法
Dec 22 Javascript
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 Javascript
JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景简述
Apr 15 Javascript
JavaScript 事件系统
Jul 22 Javascript
jQuery 过滤not()与filter()实例代码
May 10 Javascript
查看图片(前进后退)功能实现js代码
Apr 24 Javascript
javascript实现动态侧边栏代码
Feb 19 Javascript
JS获取iframe中marginHeight和marginWidth属性的方法
Apr 01 Javascript
javascript学习笔记之函数定义
Jun 25 Javascript
购物车前端开发(jQuery和bootstrap3)
Aug 27 Javascript
Javascript中的 “&amp;” 和 “|” 详解
Feb 02 Javascript
angular8.5集成TinyMce5的使用和详细配置(推荐)
Nov 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 mb_convert_encoding 获取字符串编码类型实现代码
2009/04/26 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
PHP模拟登陆163邮箱发邮件及获取通讯录列表的方法
2015/03/07 PHP
CI框架使用composer安装的依赖包步骤与方法分析
2016/11/21 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP 断点续传实例详解
2017/11/11 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
php文件包含的几种方式总结
2019/09/19 PHP
select组合框option的捕捉实例代码
2008/09/30 Javascript
JS版网站风格切换实例代码
2008/10/06 Javascript
javascript call和apply方法
2008/11/24 Javascript
js 与 php 通过json数据进行通讯示例
2014/03/26 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
jquery实现类似EasyUI的页面布局可改变左右的宽度
2020/09/12 Javascript
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
原生js实现简单轮播图
2020/10/26 Javascript
Python中http请求方法库汇总
2016/01/06 Python
浅谈Python中eval的强大与危害
2019/03/13 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
python利用文件时间批量重命名照片和视频
2021/02/09 Python
CSS3实现超慢速移动动画效果非常流畅无卡顿
2014/06/15 HTML / CSS
美国体育用品商店:Paragon Sports
2017/10/08 全球购物
结构和类有什么异同
2012/07/16 面试题
信息管理专业推荐信
2013/10/29 职场文书
廉洁家庭事迹材料
2014/05/15 职场文书
企业宗旨标语
2014/06/10 职场文书
承诺书模板
2014/08/30 职场文书
税务干部个人整改措施思想汇报
2014/10/10 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
关于颐和园的导游词
2015/01/30 职场文书
倡议书格式及范文
2015/04/29 职场文书
教师思想工作总结2015
2015/05/13 职场文书
合作协议书格式范本
2016/03/21 职场文书
基于Redis的List实现特价商品列表功能
2021/08/30 Redis