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分割字符串并放入数组的函数
Jul 04 Javascript
js获取RadioButtonList的Value/Text及选中值等信息实现代码
Mar 05 Javascript
JavaScript 语言基础知识点总结(思维导图)
Nov 10 Javascript
基于jquery插件编写countdown计时器
Jun 12 Javascript
基于jQuery插件jqzoom实现的图片放大镜效果示例
Jan 23 Javascript
JS闭包用法实例分析
Mar 27 Javascript
在vue中使用Autoprefixed的方法
Jul 27 Javascript
微信小程序dom操作的替代思路实例分析
Dec 06 Javascript
Vue实现导航栏点击当前标签变色功能
Aug 19 Javascript
vuex 动态注册方法 registerModule的实现
Jul 03 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
Jun 05 Javascript
多个Vue项目部署到服务器的步骤记录
Oct 22 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
phpmyadmin的#1251问题
2006/11/25 PHP
PHP $_FILES函数详解
2011/03/09 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
JQuery从头学起第一讲
2010/07/04 Javascript
autoPlay 基于jquery的图片自动播放效果
2011/12/07 Javascript
jquery 图片缩放拖动的简单实例
2014/01/08 Javascript
nodejs之koa2请求示例(GET,POST)
2018/08/07 NodeJs
在vue项目中使用md5加密的方法
2018/09/14 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
javascript使用正则表达式实现注册登入校验
2020/09/23 Javascript
[01:38]【DOTA2亚洲邀请赛】Sumail——梦开始的地方
2017/03/03 DOTA
500行Python代码打造刷脸考勤系统
2019/06/03 Python
Django rest framework jwt的使用方法详解
2019/08/08 Python
django自带serializers序列化返回指定字段的方法
2019/08/21 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
基于python3监控服务器状态进行邮件报警
2019/10/19 Python
Python3如何对urllib和urllib2进行重构
2019/11/25 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
python 生成器需注意的小问题
2020/09/29 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
澳大利亚正品化妆品之家:Cosmetic Capital
2017/07/03 全球购物
Lancer Skincare官方网站:抗衰老皮肤护理
2020/11/20 全球购物
幼教简历自我评价
2014/01/28 职场文书
市场营销个人求职信范文
2014/02/02 职场文书
个人近期表现材料
2014/02/11 职场文书
善意的谎言事例
2014/02/15 职场文书
《特殊的葬礼》教学反思
2014/04/27 职场文书
淘宝活动总结范文
2014/06/26 职场文书
中小学生学籍证明
2014/10/25 职场文书
先进班集体申报材料
2014/12/26 职场文书
领导参观欢迎词
2015/01/26 职场文书
孔繁森观后感
2015/06/10 职场文书
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL