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

重生之我想写后端

Vue + Element Plus 简单的响应式侧边栏

利用onMounted,初次加载页面的时候,为页面注册一个监听器。 当 ‘resize’ 事件发生时, 触发函数。 此函数里监听窗口大小,当窗口小于 500px 时,改变 isCollpase boolean 值。 实现动态变化。

<template><el-menudefault-active="2"class="el-menu-vertical-demo":collapse="isCollapse"@open="handleOpen"@close="handleClose"><el-menu-item index="1"><el-icon><Edit /></el-icon><template #title>创建问卷</template></el-menu-item><el-menu-item index="2"><el-icon><Document /></el-icon><template #title>全部问卷</template></el-menu-item><el-menu-item index="3"><el-icon><Delete /></el-icon><template #title>回收站</template></el-menu-item><el-menu-item index="4"><el-icon><DataAnalysis /></el-icon><template #title>数据统计</template></el-menu-item></el-menu>
</template><script setup>
import { ref, onMounted, onUnmounted, computed } from 'vue';
import {Document,DataAnalysis,Edit ,Delete
} from '@element-plus/icons-vue'const isCollapse = ref(true)
const handleOpen = (key , keyPath) => {console.log(key, keyPath)
}
const handleClose = (key, keyPath) => {console.log(key, keyPath)
}
// 动态计算宽度 当屏幕分辨率 =< 500px时候使用其他组件
const screenWidth = ref(window.innerWidth);
const handleResize = () => {screenWidth.value = window.innerWidth;isCollapse.value = screenWidth.value < 500;console.log(isCollapse.value);console.log(screenWidth.value);
};onMounted(() => {//动态计算宽,调用handleResize方法window.addEventListener('resize', handleResize);
});// 看网上说,避免内存泄漏
onUnmounted(()=>{window.removeEventListener('resize',handleResize);
})</script><style>
.el-menu-vertical-demo:not(.el-menu--collapse) {width: 200px;min-height: 400px;
}
</style>

点击侧边栏,主体区域跟着切换组件

看到网上有好几种实现方式,只用了最简单的一个。

利用 router-view

参考博客

<el-menu router > <el-menu-item index="/vote/all"><el-icon><Document /></el-icon><template #title>全部问卷</template></el-menu-item><el-menu-item index="/vote/trash"><el-icon><Delete /></el-icon><template #title>回收站</template></el-menu-item><el-menu-item index="/vote/analyse"><el-icon><DataAnalysis /></el-icon><template #title>数据统计</template></el-menu-item>
</el-menu><router-view> < /router-view>

利用Vue 组件实现

代码来自Vue官网

Vue 官网参考

在线运行代码

<script>
import Home from './Home.vue'
import Posts from './Posts.vue'
import Archive from './Archive.vue'export default {components: {Home,Posts,Archive},data() {return {currentTab: 'Home',tabs: ['Home', 'Posts', 'Archive']}}
}
</script><template><div class="demo"><buttonv-for="tab in tabs":key="tab":class="['tab-button', { active: currentTab === tab }]"@click="currentTab = tab">{{ tab }}</button><component :is="currentTab" class="tab"></component></div>
</template><style>
.demo {font-family: sans-serif;border: 1px solid #eee;border-radius: 2px;padding: 20px 30px;margin-top: 1em;margin-bottom: 40px;user-select: none;overflow-x: auto;
}.tab-button {padding: 6px 10px;border-top-left-radius: 3px;border-top-right-radius: 3px;border: 1px solid #ccc;cursor: pointer;background: #f0f0f0;margin-bottom: -1px;margin-right: -1px;
}
.tab-button:hover {background: #e0e0e0;
}
.tab-button.active {background: #e0e0e0;
}
.tab {border: 1px solid #ccc;padding: 10px;
}
</style>

相关文章:

  • 2006NOIP普及组真题 2. 开心的金明
  • Linux|Linux常用命令合集(一)
  • 手机离线翻译哪个好?断网翻译也能超丝滑
  • CSS:cursor作用
  • 手写HTML字符串解析成对应的 AST语法树
  • Dinky MySQLCDC 整库同步到 MySQL jar包冲突问题解决
  • 用esp prog烧录ESP32-C3板踩坑
  • pytorch-卷积神经网络
  • 【计算机视觉】数字图像处理基础知识(模拟和数字图像、采样量化、像素的基本关系、灰度直方图、图像的分类)
  • PS Mac Photoshop 2024 for Mac[破]图像处理软件[解]PS 2024安装教程[版]
  • 怎么一键备份还原Win10系统?
  • FTP原理
  • JsonCpp源码跨平台编译
  • 01Linux以及操作系统概述
  • 【wiki知识库】03.前后端的初步交互(展现所有的电子书)
  • 《Java编程思想》读书笔记-对象导论
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • CAP理论的例子讲解
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Laravel核心解读--Facades
  • Linux中的硬链接与软链接
  • Sublime text 3 3103 注册码
  • vue 个人积累(使用工具,组件)
  • 阿里云前端周刊 - 第 26 期
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 探索 JS 中的模块化
  • 我从编程教室毕业
  • 小程序 setData 学问多
  • Semaphore
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #git 撤消对文件的更改
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $.ajax中的eval及dataType
  • (3)STL算法之搜索
  • (4)Elastix图像配准:3D图像
  • (笔试题)合法字符串
  • (三)elasticsearch 源码之启动流程分析
  • (十三)Java springcloud B2B2C o2o多用户商城 springcloud架构 - SSO单点登录之OAuth2.0 根据token获取用户信息(4)...
  • (数据结构)顺序表的定义
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)scrum常见工具列表
  • ***原理与防范
  • .NET Remoting学习笔记(三)信道
  • .NET开源的一个小而快并且功能强大的 Windows 动态桌面软件 - DreamScene2
  • .NET性能优化(文摘)
  • @angular/cli项目构建--http(2)
  • @RequestMapping处理请求异常
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [15] 使用Opencv_CUDA 模块实现基本计算机视觉程序
  • [C++]四种方式求解最大子序列求和问题
  • [flink总结]什么是flink背压 ,有什么危害? 如何解决flink背压?flink如何保证端到端一致性?