首页做好了,文档页不能光秃秃的啊
路由设计
先想想我们需要文档页通向哪些地方
这里直接给出我的设计
所属 | 子标题 | 跳转路径 | 文件名(*.vue) |
---|---|---|---|
指南 | 介绍 | /document/introduction | Introduction |
指南 | 安装 | /document/install | Install |
指南 | 快速上手 | /document/start | Start |
组件 | Button | /document/button | Button |
组件 | Dialog | /document/dialog | Dialog |
组件 | Switch | /document/switch | Switch |
组件 | Tabs | /document/tabs | Tabs |
大致就做如上的子内容
然后在 src/components
目录下新建需要的文件们,此处举例 Introduction.vue
1 | <template> |
再配置 router.ts
以路由
此处使用嵌套路由
1 | // router.ts |
骨架
然后搭个骨架吧
已知文档页要显示
- 顶边栏
- 菜单
- 内容区域
容易得到如下骨架
1 | <template> |
然后加上基本的布局样式表
1 | .layout { |
侧边栏
重复代码不少,可以优化一下
先在 script 中声明数组
1 | setup() { |
然后在模板中引入
1 | <aside> |
最后补全样式表
1 | $base-color: #fe9acf; |
就可以做到移动的时候会浮光的侧边栏了
效果如图
内容区
先填充一下文档,然后用 border 法调整文本位置
得到如下调整
1 | .content > main { |
效果就不贴了,反正只是 padding 的调整
功能
在文档页,还应当可以控制顶边栏上的”弹出菜单”按键的是否可见
显然默认是允许在文档页显示的,所以在模板中调整 Topnav
为
1 | <Topnav toggleMenuButtonVisible class="nav" /> |
然后获得对菜单的引用
1 | const aside = ref<HTMLDivElement>(null); |
1 | <aside v-if="menuVisible" ref="aside"></aside> |
再读取 App.vue
提供的 menuVisible
,并实现隐藏菜单的方法
1 | const menuVisible = inject<Ref<boolean>>("menuVisible"); |
所以有如下 script
1 | import Topnav from "../components/Topnav.vue"; |
取得关闭方法后,通过事件委托,将方法挂载到 div.content
上
1 | <div class="content" @click="hideMenu"> |
即可实现点击空白处也可以关闭弹出菜单了
感谢阅读