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 相关文章推荐
用javascript实现给出的盒子的序列是否可连为一矩型
Aug 30 Javascript
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
Dec 25 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
Sep 26 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
javascript for-in有序遍历json数据并探讨各个浏览器差异
Nov 30 Javascript
js实现微信分享代码
Oct 11 Javascript
jquery实现无刷新验证码的简单实例
May 19 Javascript
jquery datatable服务端分页
Aug 31 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 jQuery
Vue开发实现吸顶效果的示例代码
Aug 21 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 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伪造referer实例代码
2008/09/20 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php 如何获取数组第一个值
2013/08/06 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
Yii2组件之多图上传插件FileInput的详细使用教程
2016/06/20 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
由php中字符offset特征造成的绕过漏洞详解
2017/07/07 PHP
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
JavaScript手风琴页面制作
2017/05/17 Javascript
vue获取当前激活路由的方法
2018/03/17 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
微信小程序左右滚动公告栏效果代码实例
2019/09/16 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
Vue使用Proxy代理后仍无法生效的解决
2020/11/13 Javascript
Python判断Abundant Number的方法
2015/06/15 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
pandas去重复行并分类汇总的实现方法
2019/01/29 Python
详解python opencv、scikit-image和PIL图像处理库比较
2019/12/26 Python
python 多线程共享全局变量的优劣
2020/09/24 Python
Python3如何使用tabulate打印数据
2020/09/25 Python
C++和python实现阿姆斯特朗数字查找实例代码
2020/12/07 Python
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
《可爱的动物》教学反思
2014/02/22 职场文书
医学专业毕业生求职信
2014/06/20 职场文书
巾帼志愿者活动方案
2014/08/17 职场文书
课前一分钟演讲稿
2014/08/26 职场文书
技术负责人岗位职责
2015/02/10 职场文书
预备党员转正意见
2015/06/01 职场文书
张思德观后感
2015/06/09 职场文书
Go 在 MongoDB 中常用查询与修改的操作
2021/05/07 Golang