vue3.0父级组件调用子组件方法

vue3.0父级组件调用子组件方法

场景:在页面开发过程中,我经常涉及到不同组件之间的元素和方法的调用。就此记录在vue3.0项目,也是我开发的开源项目中的实现方式。

父级组件调用子级

1.应用场景

以下以我的代码实现为例:在左侧菜单中,通过点击新建会话,在会话列表中新建一个会话框。

其中:会话列表页面是菜单的子级组件。

2.添加组件引用

代码如下:

vue 复制代码
import List from './List.vue'

3.页面嵌入

代码:

vue 复制代码
<div class="flex-1 min-h-0 pb-4 overflow-hidden">
    <List ref="ListComp" />
</div>

这里,在 <List> 元素中使用 ref 属性,表示引用一个名为 "ListComp" 的组件或对象

4.使用list中方法(核心)

代码如下

typescript 复制代码
const ListComp = ref<null | any>(null) // 将类型设置为允许为 null

const addConversation = () => {
  ListComp!.value.addConversation('New Chat') // 使用非空断言操作符
}

在父节点调用addConversation方法时,调用ListComp组件的addConversation方法,创建一条为New Chat 的会话。

阅读如遇样式问题,请前往个人博客浏览: https://www.raokun.top

拥抱ChatGPT:https://first.terramours.site

文中代码来自开源项目,地址:https://github.com/TerraMours/TerraMours_Gpt_Api

参考链接:https://www.cnblogs.com/ddqyc/p/16023292.html

相关推荐
喜欢敲代码的程序员9 小时前
SpringBoot+Mybatis+MySQL+Vue+ElementUI前后端分离版:项目搭建(一)
spring boot·mysql·elementui·vue·mybatis
海的诗篇_12 小时前
前端开发面试题总结-原生小程序部分
前端·javascript·面试·小程序·vue·html
sunbyte17 小时前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DragNDrop(拖拽占用组件)
前端·javascript·css·vue.js·vue
skyymrj10 天前
Vue3 + Tailwind CSS 后台管理系统教程
前端·css·vue
程序猿小D10 天前
[附源码+数据库+毕业论文]基于Spring+MyBatis+MySQL+Maven+Vue实现的校园二手交易平台管理系统,推荐!
java·数据库·mysql·spring·vue·毕业设计·校园二手交易平台
伍哥的传说11 天前
react gsap动画库使用详解之text文本动画
前端·vue.js·react.js·前端框架·vue·html5·动画
伍哥的传说11 天前
react gsap动画库使用详解之scroll滑动动画
前端·javascript·vue.js·react.js·前端框架·vue·动画
sunbyte11 天前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DrinkWater(喝水记录组件)
前端·javascript·css·vue.js·vue
麦兜*11 天前
【node】Mac m1 安装nvm 和node
java·前端·vue.js·chrome·macos·vue·nvm
胡斌附体11 天前
关于vue.mixin与vue.use的用法分析
vue·区别·mixin·通用·use·生活类比