详解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下判断一个元素是否存在的代码
Mar 05 Javascript
使用JSLint提高JS代码质量方法分享
Dec 16 Javascript
JS不能跨域借助jquery获取IP地址的方法
Aug 20 Javascript
node.js中的fs.fsyncSync方法使用说明
Dec 15 Javascript
JavaScript DOM操作表格及样式
Apr 13 Javascript
详解AngularJS中的http拦截
Feb 09 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
jQuery easyui刷新当前tabs的方法
Sep 23 Javascript
Bootstrap框架的学习教程详解(二)
Oct 18 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
微信小程序学习笔记之本地数据缓存功能详解
Mar 29 Javascript
这15个Vue指令,让你的项目开发爽到爆
Oct 11 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&amp;mysql 日期操作小记
2012/02/27 PHP
php连接mysql数据库
2017/03/21 PHP
ThinkPHP5框架实现简单的批量查询功能示例
2018/06/07 PHP
PHP中ltrim()函数的用法与实例讲解
2019/03/28 PHP
PHP+mysql防止SQL注入的方法小结
2019/04/27 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
React学习笔记之条件渲染(一)
2017/07/02 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
js实现加载页面就自动触发超链接的示例
2017/08/31 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
webpack vue 项目打包生成的文件,资源文件报404问题的修复方法(总结篇)
2018/01/09 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
Vue+Spring Boot简单用户登录(附Demo)
2020/11/12 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
[57:59]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第一场 11.05
2020/11/05 DOTA
python基于windows平台锁定键盘输入的方法
2015/03/05 Python
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python中使用正则表达式的连接符示例代码
2017/10/10 Python
Python http接口自动化测试框架实现方法示例
2018/12/06 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
解决python中画图时x,y轴名称出现中文乱码的问题
2019/01/29 Python
解决python3中的requests解析中文页面出现乱码问题
2019/04/19 Python
python matplotlib包图像配色方案分享
2020/03/14 Python
在Django中自定义filter并在template中的使用详解
2020/05/19 Python
python中的django是做什么的
2020/07/31 Python
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
外企C语言笔试题
2013/11/10 面试题
财务工作者先进事迹材料
2014/01/17 职场文书
实用的简历自我评价
2014/03/06 职场文书
小学生纪律委员竞选稿
2015/11/19 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript