快速了解Vue父子组件传值以及父调子方法、子调父方法


Posted in Javascript onJuly 15, 2020

稍微总结了一下Vue中父子间传值以及相互调方法的问题,非常基础、希望可以帮到你!先来个最常用的,直接上代码:

1、父传值给子组件

父组件:

<template>
 <div>
  <p class="father">父组件</p>
  <child :sid="id"></child>
 </div>
</template>

<script>
import child from './child'
export default {
 components: {
  child
 },
 data() {
  return {
   id:'0920', // 父组件向子组件传的值
  }
 },
}
</script>

子组件:

<template>
 <div>
  <p class="child">子组件</p>
  <p class="child">接收父组件的值是:{{sid}}</p>
 </div>
</template>

<script>
export default {
 props:{
  sid:{
   type:String,
   default: '0'
  }
 },
 data() {
  return {
  }
 }
}
</script>

 ①在父组件中的操作如下:

快速了解Vue父子组件传值以及父调子方法、子调父方法

 ②子组件中的操作如下:

快速了解Vue父子组件传值以及父调子方法、子调父方法

2、子传值给父组件

父组件:

<template>
 <div>
  <p class="father">父组件</p>
  <p class="father">接收到子组件的值:{{childSia}}</p>
  <child @passVaule="passValue"></child>
 </div>
</template>

<script>
import child from './child'
export default {
 components: {
  child
 },
 data() {
  return {
   childSia:'', // 接收子组件的值
  }
 },
 methods: {
  passValue(data) {
   this.childSia = data;
  }
 }
}
</script>

子组件:

<template>
 <div>
  <p class="child">子组件</p>
  <button @click="valueClick">传值</button>
 </div>
</template>

<script>
export default {
 data() {
  return {
  }
 },
 methods: {
  valueClick() {
   this.$emit('passVaule',19)
  }
 }
}
</script>

截图说明太累了,我直觉总结我文字吧。

①子组件中给一个方法去触发$emit,第一个参数是在父组件引入子组件绑定的函数名('passVaule'),第二个是要传的值(19)

②父组件中绑定一个函数,调用父组件中绑定的函数,在其中对值进行接收操作

3、子调用父组件中的方法

父组件:

<template>
 <div>
  <p class="father">父组件</p>
  <child @funVaule="funValue"></child>
 </div>
</template>

<script>
import child from './child'
export default {
 components: {
  child
 },
 data() {
  return {
  }
 },
 methods: {
  funValue() {
   console.log('调用了父组件中的函数');
  }
 }
}
</script>

子组件:

<template>
 <div>
  <p class="child">子组件</p>
  <button @click="funClick">调用父组件方法</button>
 </div>
</template>

<script>
export default {
 data() {
  return {
  }
 },
 methods: {
  funClick() {
   this.$emit('funVaule')
  }
 }
}
</script>

①这个跟子传值给父类似,只是不传值,调用了父组件的绑定的函数

4、父调用子组件中的方法

父组件:

<template>
 <div>
  <p class="father">父组件</p>
  <button @click="childClick">调用子组件方法</button>
  <child ref="mychild" ></child>
 </div>
</template>

<script>
import child from './child'
export default {
 components: {
  child
 },
 data() {
  return {
  }
 },
 methods: {
  childClick() {
   this.$refs.mychild.testNum(9809)
  }
 }
}
</script>

子组件:

<template>
 <div>
  <p class="child">子组件</p>
</button>
 </div>
</template>

<script>
export default {
 data() {
  return {
  }
 },
 methods: {
  testNum(e) {
   console.log('调用了子组件中的方法 11111',e)
  }
 }
}
</script>

① 父组件中在引入的子组件中写入 ref = "mychild"   mychid为自己定义的实例名

② 在函数中写 this.refs.mychild.testNum()。 “testNum”为子组件中定义的函数名

③子组件定义一个函数,让父组件调用即可,我定义的位testNum

④这个方法也可以进行传值,在括号中写入值,子组件接收即可  。

希望此文可以帮助到你哦。先去吃饭啦

以上就是快速了解Vue父子组件传值以及父调子方法、子调父方法的详细内容,更多关于Vue父子组件传值 的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
Prototype使用指南之range.js
Jan 10 Javascript
JavaScript 继承详解(四)
Jul 13 Javascript
JavaScript是否可实现多线程  深入理解JavaScript定时机制
Dec 22 Javascript
关于js new Date() 出现NaN 的分析
Oct 23 Javascript
jquery ajax方式直接提交整个表单核心代码
Aug 15 Javascript
jquery+css3实现网页背景花瓣随机飘落特效
Aug 17 Javascript
Javascript中字符串和数字的操作方法整理
Jan 22 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
JS设计模式之策略模式概念与用法分析
Feb 05 Javascript
详解es6超好用的语法糖Decorator
Aug 01 Javascript
IDEA安装vue插件图文详解
Sep 26 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
微信小程序12行js代码自己写个滑块功能(推荐)
Jul 15 #Javascript
TypeScript 引用资源文件后提示找不到的异常处理技巧
Jul 15 #Javascript
微信小程序实现列表的横向滑动方式
Jul 15 #Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 15 #Javascript
JavaScript实时更新当前的时间的示例代码
Jul 15 #Javascript
jQuery 添加元素和删除元素的方法
Jul 15 #jQuery
vue如何在项目中调用腾讯云的滑动验证码
Jul 15 #Javascript
You might like
用PHP实现验证码功能
2006/10/09 PHP
PHP的加密方式及原理
2012/06/14 PHP
PHP中__get()和__set()的用法实例详解
2013/06/04 PHP
PHP中使用CURL模拟登录并获取数据实例
2014/07/01 PHP
解析 thinkphp 框架中的部分方法
2017/05/07 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
JQuery异步获取返回值中文乱码的解决方法
2015/01/29 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
Javascript获取background属性中url的值
2016/10/17 Javascript
easyui form validate总是返回false的原因及解决方法
2016/11/07 Javascript
jq checkbox 的全选并ajax传参的实例
2017/04/01 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
详解如何让Express支持async/await
2017/10/09 Javascript
Angularjs添加排序查询功能的实例代码
2017/10/24 Javascript
vue项目中使用vue-i18n报错的解决方法
2019/01/13 Javascript
[12:51]71泪洒现场!是DOTA2让经典重现
2014/03/24 DOTA
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Python中time模块与datetime模块在使用中的不同之处
2015/11/24 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
python三引号输出方法
2019/02/27 Python
PyCharm-错误-找不到指定文件python.exe的解决方法
2019/07/01 Python
在PyCharm中控制台输出日志分层级分颜色显示的方法
2019/07/11 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
关于PySnooper 永远不要使用print进行调试的问题
2021/03/04 Python
好莱坞百老汇御用王牌美妆:Koh Gen Do 江原道
2018/04/03 全球购物
cf搞笑广告词
2014/03/14 职场文书
机关办公室岗位职责
2014/04/16 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
Python数据清洗工具之Numpy的基本操作
2021/04/22 Python
如何用threejs实现实时多边形折射
2021/05/07 Javascript
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL