使用Vue3封装的切换主题开关

本文介绍了如何使用Vue3封装一个切换主题的组件,组件包含白天和黑夜两种状态,支持自定义状态标识。通过具名插槽和自定义事件进行交互,并详细说明了食用方法。同时探讨了在组件中使用CSS变量控制主题色的可能性。
摘要由CSDN通过智能技术生成

组件介绍

第一次封装正经组件,更加深刻地感受到了Vue的强大及其带来的便利,记录一下😄打算多搞几个练Vue3

这是一个绑定了两个自定义事件、两个具名插槽的组件,可以切换白天、黑夜两种状态,因为放了两个slot插槽因此支持自定义状态标识

食用方法

1.由于使用的是具名插槽,因此需要在该组件注册至父组件后,在组件内放入两个带有v-slottemplate标签
2.需要通过v-slot传值daynight来分别表示白天与黑夜的主题
3.daynight需要是一个函数
4.若插槽内不传入任何内容,则默认补充汉字“日”与“月”

码上掘金

码上掘金可以嵌套组件吗?这样似乎不好展示效果

代码

组件:

  • 组件内对可能会发生样式变化的容器设置了transition并设置在0.3s完成过渡
  • 组件内使用了ref来获取DOM节点
  • 为了增加稍微丝滑一点的效果,开关中间的圆形按钮会变宽后变窄
  • situation是非常重要的变量,表示目前的主题状态,当发生改变时将调用父组件传入的对应函数daynight,且容器样式将会发生改变
<template lang=""><div class="slip-oute
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值