Element Plus 暗黑模式切换背后的秘密:自定义属性如何实现条件渲染?

Element Plus 暗黑模式切换背后的秘密:自定义属性如何实现条件渲染?

自定义属性的巧妙应用:隐藏幕后的条件渲染

element plus 提供了便捷的切换暗黑模式功能,其中一段代码引起了你的疑惑:

<i i="dark:ep-moon ep-sunny"></i>
登录后复制

乍一看,这句话似乎让人摸不着头脑。但它实际蕴藏着一种巧妙的设计思想,那就是利用自定义属性实现了条件渲染。

让我们把代码拆解一下:

  • “i” 是一个自定义属性,用来指定需要渲染的元素在不同条件下的样式。在这里它取值 “dark:ep-moon ep-sunny”。
  • “dark:ep-moon” 表示当处于暗黑模式时渲染
  • “ep-sunny” 表示当处于非暗黑模式时渲染

element plus 通过改变主题模式来动态添加或移除页面上的 “dark” 类名。因此,当处于暗黑模式时,由于 html 上添加了 “class=’dark'”,”.dark [i~=”ep-sunny”]” 样式声明的优先级会更高,它将覆盖 [i~=”ep-sunny”] 样式声明,从而渲染

换言之,”i” 属性就像一个条件渲染开关,根据主题模式的不同,它会在适当的时候选择渲染不同的图标。这种做法不仅增强了代码的可读性和可维护性,也展现了 JavaScriptcss 巧妙结合的强大魅力。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容