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

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

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

官网:一个 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引用之类的步骤,但是这样更清晰简洁,也符合代码模块化吧。看自己。 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue3使用Element Plus抽屉的方法如下: 首先,在Vue组件中引入Element Plus的抽屉组件: ```javascript import { ElDrawer } from 'element-plus'; ``` 然后,在模板中使用ElDrawer组件来创建抽屉: ```html <template> <el-drawer :visible="drawerVisible" :before-close="beforeClose"> <!-- 抽屉内容 --> </el-drawer> </template> ``` 在data中定义drawerVisible属性来控制抽屉的显示与隐藏: ```javascript data() { return { drawerVisible: false }; } ``` 在methods中定义beforeClose方法来处理抽屉关闭前的逻辑: ```javascript methods: { beforeClose(done) { // 处理关闭前的逻辑 // 可以在这里重置表单数据等操作 done(); // 调用done方法关闭抽屉 } } ``` 最后,通过按钮或其他交互方式来控制抽屉的显示与隐藏: ```html <template> <button @click="drawerVisible = true">打开抽屉</button> </template> ``` 这样就可以在Vue3中使用Element Plus的抽屉组件了。请根据你的具体需求进行相应的修改和调整。\[1\]\[2\] #### 引用[.reference_title] - *1* [vue3 elementplus el-drawer抽屉 实现在指定组件里打开](https://blog.csdn.net/niyooooo/article/details/126153176)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [[vue3] 定义图库抽屉组件](https://blog.csdn.net/HeyVIrBbox/article/details/127609522)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值