详解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 相关文章推荐
javascript new一个对象的实质
Jan 07 Javascript
javascript调试说明
Jun 07 Javascript
基于jquery实现的鼠标拖拽元素复制并写入效果
Aug 23 Javascript
javascript数组的使用
Mar 28 Javascript
jQuery输入城市查看地图使用介绍
May 08 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
Jul 26 Javascript
js实现图片轮播效果
Dec 19 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
angularjs 源码解析之injector
Aug 22 Javascript
AngularJS实践之使用NgModelController进行数据绑定
Oct 08 Javascript
Javascript 事件冒泡机制详细介绍
Oct 10 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 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 URL跳转代码 减少外链
2011/06/25 PHP
php将access数据库转换到mysql数据库的方法
2014/12/24 PHP
php中使用in_array() foreach array_search() 查找数组是否包含时的性能对比
2015/04/14 PHP
YII2.0框架行为(Behavior)深入详解
2019/07/26 PHP
Laravel 在views中加载公共页面的实现代码
2019/10/22 PHP
让你的PHP,APACHE,NGINX支持大文件上传
2021/03/09 PHP
javascript fullscreen全屏实现代码
2009/04/09 Javascript
JS将光标聚焦在文本最后的实现代码
2014/03/28 Javascript
JavaScript返回当前会话cookie全部键值对照的方法
2015/04/03 Javascript
JS基于ocanvas插件实现的简单画板效果代码(附demo源码下载)
2016/04/05 Javascript
jquery实现楼层滚动效果
2018/01/01 jQuery
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
详解react-native WebView 返回处理(非回调方法可解决)
2018/02/27 Javascript
Vue二次封装axios为插件使用详解
2018/05/21 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
JavaScript中0、空字符串、'0'是true还是false的知识点分享
2019/09/16 Javascript
python 排列组合之itertools
2013/03/20 Python
python中pass语句用法实例分析
2015/04/30 Python
使用Pyinstaller转换.py文件为.exe可执行程序过程详解
2019/08/06 Python
python线程中的同步问题及解决方法
2019/08/29 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
python实现每天自动签到领积分的示例代码
2020/08/18 Python
CSS实现鼠标滑过鼠标点击代码写法
2016/12/26 HTML / CSS
程序设计HTML5 Canvas API
2013/04/08 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
美国创意之家:BulbHead
2017/07/12 全球购物
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
NFL Game Pass欧洲:在线观看NFL比赛直播和点播,以高清质量播放
2018/08/30 全球购物
物业工作计划书
2014/01/10 职场文书
风险评估实施方案
2014/03/09 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
教师岗位职责范本
2015/04/02 职场文书
Python基础之进程详解
2021/05/21 Python
vue.js 使用原生js实现轮播图
2022/04/26 Vue.js