详解Vue之父子组件传值


Posted in Javascript onApril 01, 2019

一、简要介绍

父子组件之间的传值主要有三种:传递数值、传递方法、传递对象,主要是靠子组件的 props 属性来接收传值,下面分别介绍:

(一)传递数值

1.子组件:Header.vue

<template>
 <div>
  <!-- data对象里并没有 msg 属性,这里调用的是父类传递过来的 msg 属性 -->
  <h2>{{msg}}</h2>
 </div>
</template>
<script>
export default {
 data() {
  return {
  }
 },
 methods: {
 },
 // 接收父类的传值
 props: ['msg']
}
</script>

可以看到,在子组件中的data对象里并没有 msg 属性,这里调用的是父类传递过来的 msg 属性,接收就是靠 props: ['msg']。

2.父组件Home.vue

<template>
 <div>
  <!-- 2.使用子组件,并向子组件传值 -->
  <v-head :msg="msg"></v-head>

  <br>
  <br>
 </div>
</template>

<script>
// 1.引入子组件
import Head from './Head.vue';

export default {
 data() {
  return {
   msg: '我是一个组件'
  }
 },
 methods: {
 },
 components: {
  "v-head": Head
 },
 // 页面刷新时请求数据
 mounted() {
 }
}
</script>

传值的核心思想就是,在使用子组件的地方,加上要传递的值:<v-head :msg="msg"></v-head>

(二)传递方法

传递方法的写法和传递数值一样,下面只写出关键步骤:

父组件

<template>
 <div>
  <!-- 2.使用子组件,并向子组件传值 -->
  <v-head :run="run"></v-head>

  <br>
  <br>
 </div>
</template>

<script>
// 1.引入子组件
import Head from './Head.vue';

export default {
 data() {
  return {
   msg: '我是一个组件'
  }
 },
 methods: {
  run() {
   alert(this.msg);
  }
 },
 components: {
  "v-head": Head
 },
 // 页面刷新时请求数据
 mounted() {
 }
}
</script>

子组件

<template>
 <div>
  <button @click="run">接收父组件的方法</button>
 </div>
</template>
<script>
export default {
 data() {
  return {
  }
 },
 methods: {
 },
 // 接收父类的传值
 props: ['run']
}
</script>

(三)传递对象

传递对象的写法和传递数值一样,下面只写出关键步骤:

父组件

<template>
 <div>
  <!-- 2.使用子组件,并向子组件传值,这里的 this 就是 Home 组件 -->
  <v-head :home="this"></v-head>

  <br>
  <br>
 </div>
</template>

<script>
// 1.引入子组件
import Head from './Head.vue';

export default {
 data() {
  return {
   msg: '我是一个组件'
  }
 },
 methods: {
  run() {
   alert(this.msg);
  }
 },
 components: {
  "v-head": Head
 },
 // 页面刷新时请求数据
 mounted() {
 }
}
</script>

子组件

<template>
 <div>
  <!-- data对象里并没有 msg 属性,这里调用的是父类传递过来的 msg 属性 -->
  <h2>{{msg}}</h2>
  <br>
  <br>
  <button @click="run">接收父组件的方法</button>
 </div>
</template>
<script>
export default {
 data() {
  return {
   // 调用传过来的home组件的msg属性
   msg: this.home.msg
  }
 },
 methods: {
  run() {
   // 调用传过来的home组件的run()方法
   this.home.run();
  }
 },
 // 接收父类的传值
 props: ['home']
}
</script>

(四)传递数值类型校验

props: {
  'home': Object
 }

其他和上面类似!

以上所述是小编给大家介绍的Vue之父子组件传值详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Jquery知识点二 jquery下对数组的操作
Jan 15 Javascript
jQuery实现等比例缩放大图片让大图片自适应页面布局
Oct 16 Javascript
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
带左右箭头图片轮播的JS代码
Dec 18 Javascript
node.js中的fs.lchown方法使用说明
Dec 16 Javascript
编写自己的jQuery提示框(Tip)插件
Feb 05 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
Sep 14 Javascript
学习JavaScript设计模式之迭代器模式
Jan 19 Javascript
基于JavaScript实现的快速排序算法分析
Apr 14 Javascript
vue组件的写法汇总
Apr 12 Javascript
实例讲解vue源码架构
Jan 24 Javascript
Vue form表单动态添加组件实战案例
Sep 02 Javascript
微信二次分享报错invalid signature问题及解决方法
Apr 01 #Javascript
JS中的防抖与节流及作用详解
Apr 01 #Javascript
微信小程序 slot踩坑的解决
Apr 01 #Javascript
浅谈Vue.js 关于页面加载完成后执行一个方法的问题
Apr 01 #Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 #Javascript
详解JavaScript中的函数、对象
Apr 01 #Javascript
Vue递归组件+Vuex开发树形组件Tree--递归组件的简单实现
Apr 01 #Javascript
You might like
深入理解PHP中的Session和Cookie
2013/06/21 PHP
PHP运行SVN命令显示某用户的文件更新记录的代码
2014/01/03 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
jquery获取多个checkbox的值异步提交给php的方法
2015/06/24 PHP
PHP实现简易blog的制作
2016/10/24 PHP
(仅IE下有效)关于checkbox 三态
2007/05/12 Javascript
关于hashchangebroker和statehashable的补充文档
2011/08/08 Javascript
解析JavaScript中的标签语句
2013/06/19 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
JS滚轮事件onmousewheel使用介绍
2013/11/01 Javascript
jquery实现省市select下拉框的替换(示例代码)
2014/02/22 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
探寻JavaScript中this指针指向
2016/04/23 Javascript
jQuery旋转插件jqueryrotate用法详解
2016/10/13 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
详解Eslint 配置及规则说明
2018/09/10 Javascript
vue路由中前进后退的一些事儿
2019/05/18 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[01:56]无止竞 再出发——中国军团出征2017年DOTA2国际邀请赛
2017/07/05 DOTA
python获取糗百图片代码实例
2013/12/18 Python
Python自动发邮件脚本
2017/03/31 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
如何在django中运行scrapy框架
2020/04/22 Python
Django中template for如何使用方法
2021/01/31 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
高中生期末评语
2014/01/28 职场文书
大学生旅游业创业计划书
2014/01/29 职场文书
拓展策划方案
2014/06/03 职场文书
书法兴趣小组活动总结
2014/07/07 职场文书
城市轨道交通工程职业生涯规划书范文
2014/09/16 职场文书
Java新手教程之ArrayList的基本使用
2021/06/20 Java/Android