当前位置: 首页 > wzjs >正文

珠海网站开发维护科技公司温州网页设计培训

珠海网站开发维护科技公司,温州网页设计培训,北京营销网站建设设计,域名备案在哪里备案功能13:侧边栏加入Logo 功能12:折叠/展开侧边栏 功能11:实现面包屑功能 功能10:添加首页菜单项 功能9:退出登录功能 功能8:页面权限控制 功能7:路由全局前置守卫 功能6:动态添加路由…

功能13:侧边栏加入Logo

功能12:折叠/展开侧边栏
功能11:实现面包屑功能
功能10:添加首页菜单项
功能9:退出登录功能
功能8:页面权限控制
功能7:路由全局前置守卫
功能6:动态添加路由记录
功能5:侧边栏菜单动态显示
功能4:首页使用Layout布局
功能3:点击登录按钮实现页面跳转
功能2:静态登录界面
功能1:创建前端项目

前言

一.操作步骤

1.添加新组件Logo.vue

用于在侧边栏顶部显示logo图片和文字。支持折叠和展开。

<template><div class="sidebar-logo-container" :class="{ 'collapse': collapse }"><transition name="sidebarLogoFade"><div v-if="collapse" class="sidebar-logo-link"><img :src="logo" class="sidebar-logo" /></div><div v-else class="sidebar-logo-link"><img :src="logo" class="sidebar-logo" /><h1 class="sidebar-title">{{ title }}</h1></div></transition></div>
</template><script setup>
import logo from '@/assets/logo/logo.png'defineProps({collapse: {type: Boolean,required: true}
})const title = import.meta.env.VITE_APP_TITLE;
// 获取Logo背景色
const getLogoBackground = '#304156'
// 获取Logo文字颜色
const getLogoTextColor = '#ffffff'
</script><style lang="scss" scoped>
.sidebarLogoFade-enter-active {transition: opacity 1.5s;
}.sidebarLogoFade-enter,
.sidebarLogoFade-leave-to {opacity: 0;
}.sidebar-logo-container {position: relative;width: 100%;height: 50px;line-height: 50px;background: v-bind(getLogoBackground);text-align: center;overflow: hidden;& .sidebar-logo-link {height: 100%;width: 100%;& .sidebar-logo {width: 32px;height: 32px;vertical-align: middle;margin-right: 12px;}& .sidebar-title {display: inline-block;margin: 0;color: v-bind(getLogoTextColor);font-weight: 600;line-height: 50px;font-size: 14px;font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif;vertical-align: middle;}}&.collapse {.sidebar-logo {margin-right: 0px;}}
}
</style>

2.修改Sidebar.vue

引用logo组件和样式调整。

<template><div class="sidebar-container"><logo :collapse="appStore.showSidebar" /><el-scrollbar class="scrollbar-wrapper"><el-menu router :default-active="activeMenu" :default-openeds="openedMenus" class="el-menu-vertical":collapse="appStore.showSidebar" unique-opened><template v-for="item in menuData" :key="item.path"><MenuItem :item="item" :level="0" /></template></el-menu></el-scrollbar></div>
</template><script setup>
import { defineProps, computed, ref } from 'vue';
import MenuItem from './MenuItem.vue';
import logo from './Logo.vue'
import { useRoute } from 'vue-router';import useAppStore from '@/stores/app'
const appStore = useAppStore()const route = useRoute()
defineProps({menuData: {type: Array,required: true}
});const activeMenu = computed(() => {return route.path
})const openedMenus = computed(() => {return route.matched.map(item => item.path).filter(path => path !== '/')
})
</script><style lang="scss" scoped>
.sidebar-container {height: 100%;background-color: #304156;.scrollbar-wrapper {height: calc(100% - 50px);}.el-menu-vertical {height: 100%;--el-menu-bg-color: #304156;--el-menu-text-color: #bfcbd9;--el-menu-active-color: #409EFF;--el-menu-hover-bg-color: #1e0b39;}.el-menu {border: none;height: 100%;width: 100% !important;}
}</style>

3.新建.env.development

定义开发环境变量。

# 页面标题
VITE_APP_TITLE = 若依管理系统# 开发环境配置
VITE_APP_ENV = 'development'# 若依管理系统/开发环境
VITE_APP_BASE_API = '/dev-api'

二.功能验证

运行项目,浏览器访问http://localhost:5173/index
在这里插入图片描述

三.知识点拓展

一、组件化开发(核心)

通俗理解:把页面拆分成独立的积木块,每个积木可以重复使用

代码体现

<!-- 创建Logo组件 -->
<template><div class="sidebar-logo-container"><img :src="logo" /><h1 v-if="!collapse">{{ title }}</h1></div>
</template><!-- 在侧边栏中使用 -->
<sidebar><logo :collapse="appStore.showSidebar" />
</sidebar>

实际应用
• 独立维护Logo显示逻辑
• 通过props接收折叠状态
• 复用组件时只需传递不同参数


二、Props属性传递

通俗理解:父组件通过"传纸条"的方式给子组件发送数据

实现方式

// 子组件声明接收参数
defineProps({collapse: {type: Boolean,required: true}
})// 父组件传递参数
<logo :collapse="appStore.showSidebar" />

特点
• 类型检查(Boolean)
• 必传校验(required: true)
• 单向数据流(子组件不能直接修改)


三、条件渲染与过渡动画

通俗理解:根据状态显示不同内容,切换时增加渐变效果

代码实现

<transition name="sidebarLogoFade"><div v-if="collapse">...</div><div v-else>...</div>
</transition><style>
/* 定义过渡动画 */
.sidebarLogoFade-enter-active {transition: opacity 1.5s;
}
</style>

效果说明
• 折叠时只显示图标
• 展开时显示图标+文字
• 切换时有1.5秒的淡入淡出效果


四、环境变量配置

通俗理解:根据不同的工作环境(开发/生产)自动切换配置

.env文件

VITE_APP_TITLE = 若依管理系统
VITE_APP_BASE_API = '/dev-api'

使用方式

const title = import.meta.env.VITE_APP_TITLE

优势
• 敏感信息不进代码仓库
• 不同环境自动切换配置
• 前端服务无需重新打包即可改变配置


五、动态样式绑定

通俗理解:用JavaScript变量控制CSS样式

实现方式

<!-- 绑定背景色和文字颜色 -->
<div :style="{ background: getLogoBackground }"><h1 :style="{ color: getLogoTextColor }"></h1>
</div><!-- CSS中使用v-bind -->
<style scoped>
.sidebar-logo-container {background: v-bind(getLogoBackground);
}
</style>

应用场景
• 主题切换
• 动态颜色调整
• 响应式布局


六、CSS高度计算

通俗理解:通过计算保证布局不出现滚动条

关键代码

.scrollbar-wrapper {height: calc(100% - 50px); /* 总高度减去Logo高度 */
}

布局技巧

  1. 侧边栏总高度100%
  2. Logo固定高度50px
  3. 菜单区域=总高度 - Logo高度

七、组件通信与状态管理

通俗理解:侧边栏折叠状态全局共享

实现链路

Navbar点击按钮 → 修改Pinia状态 → Logo组件接收状态 → 侧边栏同步更新

代码体现

// 状态管理
const appStore = useAppStore()// 组件接收状态
<logo :collapse="appStore.showSidebar" />

八、单文件组件结构

标准结构

<template> <!-- 视图层 -->
<script>   <!-- 逻辑层 -->
<style>    <!-- 样式层 -->

优势体现
• Logo组件自包含所有相关代码
• scoped样式避免全局污染
• 明确的导入导出关系


九、响应式设计深化

实现效果

  1. 折叠状态变化 → 自动更新Logo显示
  2. 环境变量变化 → 自动更新标题
  3. 窗口大小变化 → 自动调整布局

技术支撑
• Composition API的响应式系统
• CSS百分比布局
• 计算属性(computed)


四.思考


文章转载自:

http://gBt6a6qR.Lngyd.cn
http://yXenOAXG.Lngyd.cn
http://gTcO9X8k.Lngyd.cn
http://5DpY46ZV.Lngyd.cn
http://gKgAvlgm.Lngyd.cn
http://wKDOc7kU.Lngyd.cn
http://imA5iZHv.Lngyd.cn
http://e9uq88UR.Lngyd.cn
http://HZiD6IP1.Lngyd.cn
http://BFgH1FIj.Lngyd.cn
http://i0BCNBhW.Lngyd.cn
http://AoLUboCB.Lngyd.cn
http://ejbwCqU9.Lngyd.cn
http://EsziuCM4.Lngyd.cn
http://OZnM22CU.Lngyd.cn
http://LxInkG5c.Lngyd.cn
http://KDulWkFM.Lngyd.cn
http://9eCcMXtH.Lngyd.cn
http://ciGOTZ3l.Lngyd.cn
http://3NCaDQBw.Lngyd.cn
http://FBGqzZbj.Lngyd.cn
http://8abr88KL.Lngyd.cn
http://oT90Qfke.Lngyd.cn
http://VBNTRkpH.Lngyd.cn
http://jvkEoazc.Lngyd.cn
http://5PVPeirE.Lngyd.cn
http://K6CuKTA5.Lngyd.cn
http://PWkOYCYB.Lngyd.cn
http://63ULh5lm.Lngyd.cn
http://3tF9dvnI.Lngyd.cn
http://www.dtcms.com/wzjs/664631.html

相关文章:

  • 网站中页面模板设计提供网站设计方案公司
  • 哪里网站建设联系网络营销渠道策略有哪些
  • 嘉兴网站建设服务手机网页版传奇
  • 做公装的什么网站好双控机制建设网站
  • 东营网站建设报价wordpress vaptcha
  • 企业手机端网站模板下载建设电动三轮车官方网站
  • 南梁红色景区建设管理局网站建站之星模板制作
  • 做的网站一模一样会被告吗贡井区建设局网站?
  • 免费建设网站制作高明做网站
  • 做网站要实名认证吗西安好玩的地方有哪些
  • 廊坊网站建设电话深圳品牌网站设计专家
  • 德国服务器网站公司做网站需要提供的材料
  • 交易网站开发合同范本石家庄 网站建设
  • 龙华网站制作要多少钱浏览器入口
  • 自己做电视视频网站wordpress 首页慢
  • 怪兽网站模板环保工程东莞网站建设
  • 特色专业建设验收网站找个网站怎么那么难
  • 湖州市城乡建设局网站wordpress ifanr主题
  • 做网站是怎么赚钱东莞专业网站建站设计
  • 无锡做企业网站的公司wordpress开启子域名多站点模式
  • 系网站建设总结报告网站如果不备案吗
  • 宁波网站建设哪家好wordpress 赞赏
  • 泉州哪里建设网站网站建设费应入什么科目
  • 西安免费做网站价格哪一个网站做专栏作家好点
  • 做图在哪个网站上找深圳市易捷网络科技有限公司
  • 荆州做网站哪家好谷歌seo服务商
  • 廊坊企业网站服务广东省住房和建设局官方网站
  • 建设银行网站无法登陆潜江网站设计
  • 招标网站哪个好用眉山网站开发
  • 个人作品集网站wordpress怎么汉化插件