当前位置:首页 » 《随便一记》 » 正文

【Vue】组件之间的方法调用

2 人参与  2023年04月09日 18:44  分类 : 《随便一记》  评论

点击全文阅读


组件之间的方法调用包括:

子组件调用父组件的方法父组件调用子组件的方法无关联组件之间的方法调用

下面来详细学习三种组件之间的方法调用。

子组件调用父组件的方法

子组件调用父组件时需要先访问父组件实例,Vue.js中提供了$parent property 供子组件访问父组件的实例。
$parent是指组件树的根实例,如果组件没有根实例则表示它自己。
通过$parent既可以方法父组件的方法和属性,又可以修改父组件的方法和属性。
用法:
假设父组件中有属性name和方法parentPrint,在子组件中调用如下:

//获取父组件name值console.log(this.$parent.name);//修改父组件name值this.$parent.name ="ssss";this.$parent.parentPrint();

如果子组件被父组件嵌套调用,子组件如果想要访问最外层的父组件的实例,则需要多个this.$parent.$parent...$parent直到访问到最外层的父组件,这种调用方式容易出现问题,因此不常使用。

父组件调用子组件的方法

在父组件中如果想要访问子组件的实例,可以在父组件中通过ref为子组件创建一个id引用
在父组件中调用子组件:

<base-input ref="usernameInput"></base-input>

调用子组件的方法:

this.$refs.usernameInput.方法();

但是$refs只会在组件渲染完成之后生效,并且它们不是响应式的。这仅作为一个用于直接操作子组件的“逃生舱”——你应该避免在模板或计算属性中访问 $refs

父组件向子组件传递数据
在子组件中通过props定义数据类型,父组件调用子组件时通过v-bind(或:)将数据绑定传递给子组件
子组件修改父组件的属性
子组件修改父组件的属性,可以通过以下更新父组件的属性

this.$emit('update:parentProp',prop)

Vue通过prop进行双向数据绑定。子组件数据变化,一般只能通过 this.$emit(func, val) 回调父组件函数来传值给父组件。
Vue2.3版本引入sync,作为一个事件绑定语法糖,当子组件触发事件时,父组件会响应事件并实现数据更新。
父组件:

 <parent-comp :visible.sync="isShow"></parent-comp>

子组件:

props: {    visible: {      type: Boolean,      default: false    }  },  methods: {    // 子组件触发函数    handleClose() {      this.$emit('update:visible', false)    },  }

点击全文阅读


本文链接:http://zhangshiyu.com/post/59065.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 我无名分,我不多嗔小说完结篇(陆景铄林悠悠)(我无名分,我不多嗔)全书无套路阅读无广告小说大结局
  • 奈何春风不曾渡我虐心反转_童烟沈叙白陆依在线看_小说后续在线阅读_无删减免费完结_
  • 鹿雪附加完整在线阅读(小祖宗她带着双宝闹翻天)最近更新列表
  • 你要战功我给你,妖兽入侵你哭啥高质量好文叶天凌筱完本_你要战功我给你,妖兽入侵你哭啥高质量好文(叶天凌筱)
  • 夫君和小三霸占了我的将军府,我杀疯了阅读_雪儿谭绍木兰全集_小说后续在线阅读_无删减免费完结_
  • 鹿溪小说(鹿溪)终章+番外(穿进恐怖游戏后,我和反派HE了)一口气阅读
  • 完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所列表_完结文留给儿子的副卡月月刷爆,他却因睡桥底被送进收容所(娄墨霆宋佑轩)
  • 你活着,却死在我等你的第三年后续+番外_谨言佳佳温以宁全集_小说后续在线阅读_无删减免费完结_
  • 相思溺于夏时雨小说(裴景澈初念可)章节目录+起始篇章(相思溺于夏时雨)全章无套路在线
  • 未婚夫重生归来叫停手术,把剥开肚子的我困在手术台上40分钟(裴临渊阮离歌)
  • 完结文离婚是你提,净身出户你又哭什么精彩分享列表_完结文离婚是你提,净身出户你又哭什么精彩分享(苏铭余素伊)
  • 全书浏览哥哥重生救我,我带队灭了组织!(陈致远陈知韫)_哥哥重生救我,我带队灭了组织!(陈致远陈知韫)全书结局

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1