博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《从零构建前后分离的web项目》:前端完善 - 手把手教你快速构建网站布局
阅读量:6190 次
发布时间:2019-06-21

本文共 4259 字,大约阅读时间需要 14 分钟。

添砖加瓦 - 手把手教你快速构建网站布局

本文为方便讲述重构去除了 Element、vux 库,用了最近比较火的 bulma 轻量、快捷、易读。

项目截屏

Layout and Components

Layout

首先,似上图,我们思考把一个小型网站拆成三部分:页头(Header)、内容(Content)、页脚(Footer) 这几乎每个网站内都必须有的,通常把万年不变的:页头(Header)、页脚(Footer) 制作成 Layout 方便通用。

Components

再把内容(Content)根据业务进行拆分成 组件(Components)

如上图:Header 和 Content :Header其实没有拆分的必要,没有可以重用的组件,而 Conntent 是必须要拆分的布局元素。因为动态网站 Conntent 随着内容的变化而变化,内容多,可重用的东西的概率越高,需要把能重用的东西提炼出来

1、节省代码、提高代码阅读性

2、便于修改 (比如更新广告)

开始写代码

接着我们的 开始,基于它继续完善小网站布局和组件化。

值得一提的是:本系列教程一章跟随一章并且每一章可以独立运行,章与章之间完美衔接,没有 “突然出现” 的代码段。不会给新手无从下手的感觉,如果那你对代码陌生,那你该认真翻翻往期文章了。你可以基于上一章逐步写代码,也可以下载本章简单预览代码。

  • 引入 bulma 样式 CDN
vim new-bee/index.html复制代码
复制代码
  • 新建 Layout 目录
vim new-bee/src/renderer/components/layout复制代码
  • Layout 目录下建立 Header.vue 模板组件

这个组件专门写头部的内容,最好配合栅格尽可能写出简单的响应式组件

复制代码

什么样式可以写在 .vue 文件中

上文的比较熟悉的代码是让我们的头像变圆的代码段

  • 效果

这里我偷了个懒,刚好可以说一说,对于如此通用的样式,局限在 .vue文件中,并且以 scoped 标示,宣判了它无法复用的事实,任何模块想用这个样式,都需要复制一份,显然是不规范的,我们通常还会建立通用的 css 文件进行管理,大型项目 css 管理规范将更加严格、规范的树级结构,具体就看 CTO 的想法了。

根据喜好选择如何布局

按需引入

vim new-bee/src/renderer/components/HelloWorld.vue复制代码
复制代码

缺点是要一个一个引入,但优点是代码可读性高

全局引入

  • App 主入口
vim  new-bee/src/renderer/App.vue复制代码
  • 引入
复制代码
  • 查看效果

基于 webpack 爸爸的热部署,我们无需刷新浏览器,webpack 偷偷用 ws 更新了我们的内容。似乎很完美,但是也许大家发现了一个问题,我们通过浏览器渲染出来的 dom 就可以看到::

我们在主 APP 入口引入了头部布局, App.vue 是紧临 元素的正文元素,而这个程序所有页面、子路由全部都是 App.vue 入口的子集,说明全局引入布局会存在如下问题:

1、这个项目所有的项目都一定会带上 Header 组件渲染的内容 2、而且会影响在下期 《性能优化》中讲的 webpack 按需加载的性能。

当然可以再 Header 组件上书写逻辑条件,过滤指定的路由,但会破坏项目的易读性,难以维护

我个人是比较推荐第一种:按需引入的方式。

继续布局

  • 照猫画虎写好 Footer
vim new-bee/src/renderer/components/layout/Footer.vue复制代码
复制代码

别忘了在 HelloWorld 引入一下

  • 看看效果

  • 看起来效果还不错,接下来是 Content(正文)部分
vim new-bee/src/renderer/components/layout/Content.vue复制代码
复制代码
  • 看看效果

  • HelloWorld.vue 代码看起来是这样的

还算看得过去,我们继续参照图二

为 Content 制定 AD(广告) 组件。

vim new-bee/src/renderer/components/common/AD.vue复制代码
复制代码
  • 别忘了在 Content.vue 引入一下
...
...import AD from "@/components/common/AD";export default { name: "Content", components: { AD }, ... }复制代码
  • 看下效果

  • 对比一下我们之前 sketch 画的草图

差不多完成了我们初步的构思

总结

至此页面布局和组件的引用大概讲述完了,相信大家可以举一反三,写好自己的小网站,其中更复杂的嵌套方式不再讲了,大家直接去看项目吧。

作者的话

其实这个项目老早就是今天这个样子了,只是一直在下班后写教程,耽误了进度,写教程也不是复制粘贴,首先要保障准确性,而不是删删改改草草了事,想写出好的教程只能换位思考,以小白的身份,从 CLI 、头到尾一行代码一行代码堆上去。相信写到现在一部分人对前端也有了一些新的认识,前端已经不是引入一个 JQuery.js、Vue.js 去写脚本的时代了 (Angular 已经有 IOC 了),作为一个后端,前端初步就带大家玩到这里了,Electron 以后大家直接去看项目吧,没什么好讲的,下一章会单独讲解一章终章《前端性能优化》大概涉及: webpack按需加载 、gZip、CDN、没钱买服务器如何调试小程序等 Tips ,本教程全栈方向的,下一步还有后端微服务、消息队列、docker、docker-compose/rancher 模拟集群、运维 等几个点,以后会加快进度的,尽量新年之前写完全部内容。

关于回复

新发布的文章前两天其实我都会去掘金大家的评论我都会看,但是你能想象得到吗,掘金消息提醒没有分类 :点赞 | 回复 |

大家的消息就是在无尽的滚动条中石沉大海了,之后也就懒得看了,评论找不到我可以去 各个文章下面留言提问,或者勘误,为后人铺路,新文章也会先发到这里一天请大家勘误,star 不 star 无所谓了,谢谢大家。

往期文章

下一章《前端终章-前端性能优化与上线》

转载地址:http://vvrda.baihongyu.com/

你可能感兴趣的文章
Kindle Paper White 使用感受视频上线啦!
查看>>
软件质量与测试--第四周作业 WordCountPro
查看>>
Linux下的tar压缩解压缩命令详解
查看>>
Day 网络协议介绍 简单通信的实现
查看>>
hbase源码系列(二)HTable 探秘
查看>>
hdu 3117 Fibonacci Numbers 矩阵快速幂+公式
查看>>
[置顶] MVC三层架构在各框架中的特征
查看>>
JS面试Q&A(续):Javascript数组排序, 默认是字符串Unicode排序, 不适合数字
查看>>
Maven学习总结(7)——eclipse中使用Maven创建Web项目
查看>>
Asp.Net 利用反射获得委托和事件以及创建委托实例和添加事件处理程序
查看>>
Ubuntu 安装 BleachBit
查看>>
hdu 1312 Red and Black
查看>>
m_Orchestrate learning system---十九、局部变量和块变量是什么
查看>>
P1140 相似基因
查看>>
企业架构研究总结(43)——企业架构与建模之ArchiMate详述(下)
查看>>
EM算法原理详解
查看>>
ado.net使用sqlparameter的方式
查看>>
OpenStack 多节点纳管 vCenter 5.5
查看>>
生成器//推导式
查看>>
光圈优先模式(Av模式)0002
查看>>