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 相关文章推荐
学习YUI.Ext 第三天
Mar 10 Javascript
jquery 页面滚动到底部自动加载插件集合
Jan 31 Javascript
Js实现滚动变色的文字效果
Jun 16 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
BootStrap网页中代码显示用法详解
Oct 21 Javascript
node.js中的事件处理机制详解
Nov 26 Javascript
EasyUI折叠表格层次显示detailview详解及实例
Dec 28 Javascript
在vue中使用css modules替代scroped的方法
Mar 10 Javascript
JavaScript学习笔记之DOM基础操作实例小结
Jan 09 Javascript
vue路由跳转传参数的方法
May 06 Javascript
React Native中ScrollView组件轮播图与ListView渲染列表组件用法实例分析
Jan 06 Javascript
js+css3实现炫酷时钟
Aug 18 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上传图片之时间戳命名(保存路径)
2014/08/15 PHP
PHP中如何防止外部恶意提交调用ajax接口
2016/04/11 PHP
PHP实现简单计算器小程序
2020/08/28 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
解析John Resig Simple JavaScript Inheritance代码
2012/12/03 Javascript
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
用javascript添加控件自定义属性解析
2013/11/25 Javascript
中止javascript执行的方法
2014/02/14 Javascript
js实现网页随机切换背景图片的方法
2014/11/01 Javascript
JS表的模拟方法
2015/02/05 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
推荐VSCode 上特别好用的 Vue 插件之vetur
2017/09/14 Javascript
jQuery读取本地的json文件(实例讲解)
2017/10/31 jQuery
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
vue+webpack 打包文件 404 页面空白的解决方法
2018/02/28 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
React降级配置及Ant Design配置详解
2018/12/27 Javascript
解决qrcode.js生成二维码时必须定义一个空div的问题
2020/07/09 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
windows下python模拟鼠标点击和键盘输示例
2014/02/28 Python
用Python解析XML的几种常见方法的介绍
2015/04/09 Python
pycharm设置注释颜色的方法
2018/05/23 Python
Pandas中resample方法详解
2019/07/02 Python
Django 查询数据库并返回页面的例子
2019/08/12 Python
Python OpenCV去除字母后面的杂线操作
2020/07/05 Python
兰芝美国网上商城:购买LANEIGE睡眠面膜等
2017/06/30 全球购物
信息工程学院毕业生推荐信
2013/11/05 职场文书
暑假学习心得体会
2014/09/02 职场文书
个人委托函范文
2015/01/29 职场文书
校园安全学习心得体会
2016/01/18 职场文书