为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第22天 组件动态 CSS 值

标签:
Vue.js

课程名称:基于Vue3最新标准,实现后台前端综合解


课程章节: 第一章


课程讲师:Sunday


课程内容

        在 vue 3.2 最新更新中,除了 响应式变化 之外,还有另外一个很重要的更新,那就是 组件状态驱动的动态 CSS 值

<template>
  ... 
   <el-avatar   :size="logoHeight" >
   ... 
 </template> 
 <script setup> 
   ... 
   const logoHeight = 44 
 </script> 
 <style scoped> 
   .logo-container {   
       height: v-bind(logoHeight) + 'px';
       ...
    } 
 </style>


接下来是 动画处理  transition-group

<template>
  <el-breadcrumb class="breadcrumb" separator="/">
    <transition-group name="breadcrumb">
      ...
    </transition-group>
  </el-breadcrumb>
</template>
.breadcrumb-enter-active,
.breadcrumb-leave-active {
  transition: all 0.5s;
}
.breadcrumb-enter-from,
.breadcrumb-leave-active {
  opacity: 0;
  transform: translateX(20px);
}
.breadcrumb-leave-active {
  position: absolute;
}


接下来说下 自定义主题

在代码中 需要进行自定义主题变更 成 menu 菜单背景色

其实实现原理也是通过vuex


<el-menu    :default-active="activeMenu"
    :collapse="!$store.getters.sidebarOpened"
    :background-color="$store.getters.cssVar.menuBg"
    :text-color="$store.getters.cssVar.menuText"
    :active-text-color="$store.getters.cssVar.menuActiveText"
    :unique-opened="true"
    router  >


在el-menu 里面设置 v-model 绑定vuex


import variables from '@/styles/variables.scss'
import { MAIN_COLOR } from '@/constant'
import { getItem } from '@/utils/storage'
import { generateColors } from '@/utils/theme'
const getters = {
  ...
  cssVar: state => {
    return {
      ...variables,
      ...generateColors(getItem(MAIN_COLOR))
    }
  },
  ...}
  
  export default getters

https://img1.sycdn.imooc.com//637194270001211602300416.jpg

但在开发过程中 没有进行变更

<sidebar
      id="guide-sidebar"
      class="sidebar-container"
      :style="{ backgroundColor: $store.getters.cssVar.menuBg }"
    />
import variables from '@/styles/variables.scss'export default {
  namespaced: true,
  state: () => ({
    ...
    variables  }),
  mutations: {
    /**
     * 设置主题色
     */
    setMainColor(state, newColor) {
      ...
      state.variables.menuBg = newColor      ...
    }
  }}

这个是因为 getters 中没有监听到 依赖值的响应变化,所以我们希望修改依赖值



https://img3.sycdn.imooc.com/637191d200010ca910940772.jpg















点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
25
获赞与收藏
19

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消