上一篇文章写了vue和打印稿的整合,发现很多小伙伴对vue-cli构建出来的项目很感兴趣,所以今天打算写写怎么在vue-cli3.0的架子上,在进一步完善,整合出具备基础功能的前端架子,主要包括以下几个功能点:
-
<李> webpack打包扩展李>
<李> css: sass支持,normalize.css李>
<李>雷布局李>
<李>路由设计:懒加载,前置检查,合法性校验李>
<李> api设计李>
<李>请求体设计——防重复提交李>
<李> vuex状态管理李>
<强> webpack打包扩展强>
vue-cli3最大的特点就是<代码>零配置> 代码,脚手架把webpack相关的配置都隐藏在@vue \ preload-webpack-plugin中,默认的配置可以满足大部分应用场景,优点是我们可以节省很多折腾配置的时间,webpack对于新手来说,还是有点门槛的,这样一来,新人上手可以更关注于vue的编码上。缺点也很明显,对于想自己进行自定义配置的时候,就会稍微麻烦些。
<强>查看当前webpack的详细配置强>
vue检查使用<代码> 代码>可以查看到详细的配置列表
<强>扩展webpack配置强>
当我们想要修改或者扩展webpack配置项时,可以在根目录下新增<代码> vue.config。js代码>文件,列举个我自己写的简单小栗子
//webpack扩展 模块。出口={ baseUrl:‘生产’===process.env。NODE_ENV & # 63; “production-sub-path/? “/? chainWebpack:配置=比;{ config.module .rule('图像') .use (“url-loader”) . tap(选项=比;对象。分配(选项,{限制:500})); }, devServer: { 打开:“达尔文”===process.platform,//主机:0.0.0.0, 端口:8088 https:假的, 紧随:假的,//代理:“https://api.douban.com”//字符串|对象 代理:http://localhost: 3000//字符串|对象 }, lintOnSave:假};
官网Vue。js开发的标准工具的介绍非常详细,而且还有中文版,非常易懂,
<强> sass支持强>
& lt;风格lang=" scss "祝辞& lt;/style>
& lt;风格lang=皊css”比; @ import”。/资产/风格/应用程序”; & lt;/style>
在组件中使用自定义和mixin的功能,我暂时没找到全局引用的办法,只能在需要使用的组件文件中手动引用,如下
& lt;风格lang=皊css”比; @ import“. ./资产/风格/功能”; @ import“. ./资产/风格/mixin”; .rem { 高度:px2rem (187.5 px);//自定义的函数 } .mimi { @include clearfix ();//自定义的混合 } & lt;/style>
为了抹平各个浏览器间的差异,我们需要引入normalize.css
//app.scss @ import”。/node_modules normalize.css/正常化”;//引用第三方正常化 @ import“custom_normalize”;//自定义的正常化
<强>雷布局强>
在移动端下使用雷布局是个不错的选择,既然我们使用里的scss,那么可以使用函数来简化我们的重复计算的工作。设计给到的通常是2倍图,宽为750 px,那么我们可以将基准设为<代码> document.getElementsByTagName (html) [0] .style。字形大?窗口。innerWidth/10 +的px; 代码>然后写个转换函数,如下:
//_functions.scss @function px2rem (px美元){ 美元快速眼动:75 px; @return (px/美元快速眼动)+快速眼动; }
我们在使用的时候,就可以这么写
.rem { 高度:px2rem (300 px);//2倍图下的宽是300 px, }
转换成css就是
.rem { 高度:4快速眼动; }
<>强路由设计强>
主要包括路由懒加载,路由前置检查,合法性校验逻辑,以下是我写的一个简单路由
从“进口Vue Vue '; 从“vue-router”进口路由器;//路由懒加载 const getComponent=(名称:字符串)=比;()=比;进口(’。/视图/$ {name} .vue '); Vue.use(路由器); const路由器=new路由器({ 路线:[ { 路径:“/? 名称:“回家”, 组件:getComponent(“回家”) }, { 路径:'/', 名称:“关于”, 组件:getComponent('对'), 元:{ 身份验证:真 } }, { 路径:“*”, 名称:“not_fount”, 组件:getComponent (“notFount”) } ] });/* * *路由前置检查 */路由器。beforeEach(下),从=比;{//合法性校验 如果(to.meta.auth) { 控制台。日志(“到身份验证”); next (); } next (); }); 出口的默认路由器;详解基于vue-cli3.0如何构建功能完善的前端架子