详解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+CSS 实现随滚动条增减的汽水瓶中的液体效果
Sep 26 Javascript
Jquery图形报表插件 jqplot简介及参数详解
Oct 10 Javascript
javascript新建标签,判断键盘输入,以及判断焦点(示例代码)
Nov 25 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
javascript数组去重小结
Mar 07 Javascript
jquery操作select取值赋值与设置选中实例
Feb 28 Javascript
js中DOM三级列表(代码分享)
Mar 20 Javascript
详解使用React全家桶搭建一个后台管理系统
Nov 04 Javascript
对Vue beforeRouteEnter 的next执行时机详解
Aug 25 Javascript
node实现分片下载的示例代码
Oct 17 Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 Javascript
利用JavaScript写一个简单计算器
Nov 27 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
在yii中新增一个用户验证的方法详解
2013/06/20 PHP
php图像处理函数大全(推荐收藏)
2013/07/11 PHP
PHP实现基于栈的后缀表达式求值功能
2017/11/10 PHP
php文件包含的几种方式总结
2019/09/19 PHP
解决Laravel 不能创建 migration 的问题
2019/10/09 PHP
JavaScript 乱码问题
2009/08/06 Javascript
一个javascript图片阅览组件
2010/11/09 Javascript
ajax更新数据后,jquery、jq失效问题
2011/03/16 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
分享一些常用的jQuery动画事件和动画函数
2015/11/27 Javascript
JS中使用变量保存arguments对象的方法
2016/06/03 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
AngularJS入门教程之更多模板详解
2016/08/19 Javascript
js 数据存储和DOM编程
2017/02/09 Javascript
基于es6三点运算符的使用方法(实例讲解)
2017/10/12 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
在Vue环境下利用worker运行interval计时器的步骤
2019/08/01 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
vue项目接口管理,所有接口都在apis文件夹中统一管理操作
2020/08/13 Javascript
Vue和React有哪些区别
2020/09/12 Javascript
Python MySQLdb Linux下安装笔记
2015/05/09 Python
浅析Python中的for 循环
2016/06/09 Python
Python读取excel指定列生成指定sql脚本的方法
2018/11/28 Python
Python3 串口接收与发送16进制数据包的实例
2019/06/12 Python
通过HTML5 Canvas API绘制弧线和圆形的教程
2016/03/14 HTML / CSS
中学生爱国演讲稿
2013/12/31 职场文书
七年级数学教学反思
2014/01/22 职场文书
大学生党员承诺书
2014/05/20 职场文书
祖国在我心中演讲稿450字
2014/09/05 职场文书
餐饮食品安全责任书
2015/01/29 职场文书
追讨欠款律师函
2015/05/27 职场文书
学习社交礼仪心得体会
2016/01/22 职场文书
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS