element-plus里面的抽屉Drawer的使用

本文介绍了如何在Vue3中将抽屉功能封装成组件,以便于代码模块化。通过定义父组件的按钮触发子组件的抽屉,并利用ref和v-model实现组件间的通信。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 示范代码官网都有,我这里只针对要代码模块化,需要把抽屉专门封装成一个组件的情况。

官网:一个 Vue 3 UI 框架 | Element Plus

好处是代码看着更清晰,不乱。

(背景Vue3,如果是vue2,同理)

封装组件的话,需要在父组件中调用封装的抽屉子组件标签。

为了让代码更清晰,模块化,把抽屉单独封装成一个组件。

目的:父组件定义按钮,点击按钮,触发抽屉组件,抽屉展开

思路:

1,父组件定义触发按钮的方法(暂时定义空方法,不写逻辑)

2. 子组件,写抽屉代码,给抽屉添加v-mode,双向绑定的变量 的值为布尔值true/false,打开/关闭抽屉

3.子组件向外暴露一个方法,方法内容为v-model的值等于= true,打开抽屉

4. 父组件在子组件标签上面添加ref属性,用以打标记,便于引用子组件

5. 定义父组件按钮的代码逻辑:引用子组件暴露的方法。打开了抽屉

父组件:

父组件
<template>
//子组件标签
    <elDrawer></elDrawer>
</template>

新建components/elDrawer.vue子组件文件 :

<template>
//抽屉
  <el-drawertitle="I am the title" :with-header="false">
    <span>Hi there!</span>
  </el-drawer>
</template>

点击父组件的按钮,触发抽屉,那么,在父组件需要的位置,放置子组件标签,然后,给子组件标签加ref属性,(目的是为了给组件打个标记,便于引用) 

ref作用:  在不用原生js的情况下, 操作DOM,相当于原生js的 id 在元素位置打个标识, 然后它的引用信息会出现在$refs

//父组件
<template>
//引用子组件的ref属性pub
    <elDrawer ref="pub"></elDrawer>
</template>

定义pub,并引入

//父组件:
import { ref } from 'vue'
const pub = ref()

让点击父组件的“发布文章”按钮,就触发子组件的抽屉:

 给按钮添加方法:publish()

//父组件-发布文章按钮:
const pub = ref()
const publish = () => {
//log一下,测试
  console.log('发布文章')
}

 按钮可以正确触发,那么,给子组件里面写一个方法open(),名称自定义。用于打开抽屉:

//子组件:
//自定义常量,drawer,默认关闭
const drawer = ref(false)
//触发open方法就打开
const open = () => {
  drawer.value = true
}
//导出open方法,父组件就能接收到该方法
defineExpose({ open })

子组件抽屉使用v-model,值为drawer:

//抽屉组件
//v-model=drawer, drawer=true/false,用以控制抽屉的打开/关闭
  <el-drawer v-model="drawer" title="I am the title" :with-header="false">

 父组件设置:

//引用子组件
const pub = ref()
// 发布文章按钮
const publish = () => {
//点击按钮,触发publish方法,方法的逻辑是触发open方法,open方法是打开(drawer=true了)
  pub.value.open()
}

抽屉打开了!

如果不分模块,代码更简洁,也省略了ref引用之类的步骤,但是这样更清晰简洁,也符合代码模块化吧。看自己。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值