详解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的颜色选择插件实例代码
Oct 02 Javascript
Javascript 汉字字节判断
Aug 01 Javascript
一个XML格式数据转换为图表的例子
Feb 09 Javascript
23个超流行的jQuery相册插件整理分享
Apr 25 Javascript
js导出table到excel同时兼容FF和IE示例
Sep 03 Javascript
javascript获取url上某个参数的方法
Nov 08 Javascript
JS打字效果的动态菜单代码分享
Aug 21 Javascript
Js制作点击输入框时默认文字消失的效果
Sep 05 Javascript
JavaScript修改作用域外变量的方法
Mar 25 Javascript
在vue项目中引用Iview的方法
Sep 14 Javascript
详解如何写出一个利于扩展的vue路由配置
May 16 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 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学习之简单计算器实现代码
2011/06/09 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
Smarty实现页面静态化(生成HTML)的方法
2016/05/23 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
Yii框架数据模型的验证规则rules()被执行的方法
2016/12/02 PHP
PHP调用接口API封装的例子
2019/10/11 PHP
在IE和VB中支持png图片透明效果的实现方法(vb源码打包)
2011/04/01 Javascript
基于jquery的无刷新分页技术
2011/06/11 Javascript
js获取TreeView控件选中节点的Text和Value值的方法
2012/11/24 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
JS判断数组中是否有重复值得三种实用方法
2013/08/16 Javascript
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
JavaScript中使用document.write向页面输出内容实例
2014/10/16 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
PHP 数组current和next用法分享
2015/03/05 Javascript
jquery拖拽效果完整实例(附demo源码下载)
2016/01/14 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
JS实现Select的option上下移动的方法
2016/03/01 Javascript
详谈jQuery unbind 删除绑定事件 / 移除标签方法
2017/03/02 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
Bootstrap table使用方法汇总
2017/11/17 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
[01:01:24]DOTA2上海特级锦标赛A组败者赛 EHOME VS CDEC第三局
2016/02/25 DOTA
requests在python中发送请求的实例讲解
2021/02/17 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
Spotahome意大利:公寓和房间出租
2020/02/21 全球购物
.net软件工程师应聘上机试题
2015/03/10 面试题
航海技术专业毕业生求职信
2014/04/06 职场文书
2014年学雷锋活动总结
2014/06/26 职场文书
销售竞赛活动方案
2014/08/23 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
魂断蓝桥观后感
2015/06/10 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
资产移交协议书
2016/03/24 职场文书