当前位置: 首页 > Web前端 > vue.js

分享一个Vue项目实践计划

时间:2023-03-31 23:54:07 vue.js

一、创建vue项目在老版本中创建vue项目的命令是:npminstall-g@vue/cli-initvueinitwebpackmy-projectvueinit的运行效果会同vue-cli@2.x同vuecreatehello-world,然后在命令行窗口可以选择是否使用包含默认less+babel的预设,或者手动选择所需的功能。此外,你还可以使用vueui命令来创建和管理具有图形界面的项目。2、移动端风格适配鉴于移动端屏幕种类繁多,UI图形一般以750像素为输出,简单给出适配规则。前端开发者需要提供一套可用的适配方案,力求能够以最少的工作量实现更完善的适配。常用的适配方案有rem和viewport。px2rempostcss-px-to-viewport等插件可以提供pxtorem和视口处理。rem方案可以通过视口的大小动态设置根元素的字体大小,所有元素根据相对根元素的大小设置样式。视口方案实际上改变了视口的大小,并根据视口与UI地图宽度的比例按比例缩放。这种方式破坏了完美的视口,我们一般使用rem布局。在rem布局方案中,我们需要查询屏幕宽度,然后设置根元素的font-size。在一般的自适应方案中,字体会根据屏幕大小变化,这样当屏幕变宽时,字体就会变大。其实有的时候并不适合我们的使用场景。淘宝只是简单的提供了一个灵活的解决方案,字体大小适中,保持在12px,但是图片的宽高是根据html中的字体变化来设置的。这里设置了rem的基本单位,但是stylewriting中的每一个像素点都是计算两者非常麻烦。使用px2rem插件可以帮助我们自动转换为rem。我们只需要按照UI图写px个像素,然后在vue.config.js文件中配置即可。postcss-px2rem-exclude比px2rem更有用的一点是可以设置不进行转换的黑名单,第三方UI库样式不会被污染。constpx2rem=require('postcss-px2rem-exclude')constpx2remConfig=px2rem({remUnit:75,exclude:/node_modules|floder_name/i//selectorBlackList:['weui','mu']})module.exports={css:{loaderOptions:{postcss:{plugins:[px2remConfig]}}}}第三,图像添加和1像素边框dpr2和dpr3屏幕出现,屏幕分辨率更高,图片更清晰。但是我们在写样式的时候,还是按照css像素来写,而不是设备物理像素。为了最大限度地发挥设备的性能,在图像处理中,一般2x屏及以下加载2x图像,3x屏加载3x图像。使用lessmixin实现mediaquery,加载对应的背景图片。mixin.less.bg-image(@url){背景图像:e(%("url(../assets/%a@2x.png)",e(@url)));@media(-webkit-min-device-pixel-ratio:3),(min-device-pixel-ratio:3){background-image:e(%("url(../assets/%a@3x.png)",e(@url)));}}需要按分辨率添加背景图片的地方:@import"../assets/style/mixin.less";.close{width:42px;高度:42px;.bg-image('关闭');背景位置:中心;背景重复:不重复;background-size:100%100%;}这里只是对背景图片的处理,img标签的图片也有简单的处理方法,srcset标签可以根据屏幕宽度或像素加载相应的图片比率。如果不是对应的值,则加载默认图片。1个像素左右的边框,在很多UI图中,1个像素表示A物理像素而不是css像素。如果我们使用csspixels来开发,在多屏上会显得更粗。当遇到比较逼真的UI和产品时,会指出必须修复。所以我们需要用一些手段来实现1个物理像素的边框,缩放就是一个很好的手段。mixin.less.border-1px(@color:#ccc,@radius:2PX,@style:solid){position:relative;&::之后{内容:“”;指针事件:无;显示:块;位置:绝对;左:0;顶部:0;变换原点:00;边框:1PX@style@color;边界半径:@radius;框大小:边框框;宽度:100%;高度:100%;@media(最小分辨率:2dppx){宽度:200%;高度:200%;边界半径:@radius*2;变换:比例(.5);}@media(最小分辨率:3dppx){宽度:300%;高度:300%;边界半径:@radius*3;变换:比例(.333);}}}四、添加环境变量在实际开发中,我们可能会涉及到开发环境、预生产环境、生产环境等,每个环境都会涉及到不同的配置,比如后台接口地址、发布路由等。为了为了避免在开发和打包过程中频繁注释和更改这些配置,我们可以将它们写入环境变量配置文件。在项目根目录下创建.env.xxx文件,xxx为当前环境模式,比如开发生产,为预发布环境等,我们定义模式package.json"scripts":{"serve":"vue-cli-serviceserve","build:test":"vue-cli-servicebuild--modetest","build:prod":"vue-cli-servicebuild","lint":"vue-cli-servicelint"},用npmrunbuild:test命令打包的项目会自动读取.env.test文件中的配置。env.testNODE_ENV='production'#键名必须以VUE_APP开头VUE_APP_ENV='test'VUE_APP_MODE='test'VUE_APP_SSO='http://localhost:9080'需要使用环境变量的地方,可以通过配置读取进程.env.envName。第五,使用vue-cli创建的webpack附加配置项目其实已经有了相应的简单配置。但是我们仍然可以配置vue.config.js来最大化webpack的性能。详情请参考https://mp.weixin.qq.com/s/ffUcsTnVNtTb-VinH8Llvg