前端架构设计开篇
最近在读《前端架构设计》,整书只有148页,薄薄的一本,但是看起来还是很有份量的。这本书展示了一名成熟的前端架构师对前端开发全面而深刻的理解。作者结合自己在Red Hat公司的项目实战经历,探讨了前端架构原则和前端架构的核心内容,包括工作流程、测试流程和文档记录,以及作为前端架构师所要承担的具体开发工作,包括HTML、JavaScript和CSS等。从豆瓣等评论来说,褒贬不一,但是个人感觉读一读还是很有必要的,取其精华去其糟粕即可。
最近在读《前端架构设计》,整书只有148页,薄薄的一本,但是看起来还是很有份量的。这本书展示了一名成熟的前端架构师对前端开发全面而深刻的理解。作者结合自己在Red Hat公司的项目实战经历,探讨了前端架构原则和前端架构的核心内容,包括工作流程、测试流程和文档记录,以及作为前端架构师所要承担的具体开发工作,包括HTML、JavaScript和CSS等。从豆瓣等评论来说,褒贬不一,但是个人感觉读一读还是很有必要的,取其精华去其糟粕即可。
项目中用到了弹窗居中,有些弹出正常,有些弹出就模糊。这就比较奇怪了,一样的样式,为啥会出不同的结果呢?
css水平居中是有很多办法的,项目里面用的是这样的居中方式:
position: absolute;
left: 50%;
transform: translateX(-50%);
然后一点一点的去掉样式,定位到是transform
导致的!用搜索引擎查了下,果然不止我一个人有问题,看来有解决方案了。
原来出现模糊的原因是因为元素的高度、宽度中有奇数, 使用类似translate(-50%,-50%)
之后,相当于宽度、高度除以2的效果,会出现 0.5px。像素就是最小的单位了,要么1,2,3,要么就是0,没有小数。
好在这个项目里面的弹出层宽度是可以设置宽度的,看了下这个模糊的弹出,设置的宽度是865px,好吧,那就改改宽度解决问题!但是,如果是不定高度垂直居中呢?这就比较棘手了,不能用这个方案了,所以transform
对于居中不是一个好的解决方案,在实际项目中应该尽量避免此方案!
所以,如果考虑兼容就老老实实的用table + table-cell
方式去居中,不考虑兼容的话使用flex
方式去居中!
项目里面用到了饿了么的el-tree
,但是给el-tree
包裹div
时,如果父级宽度设置比节点宽度小,不会出现横向滚动条。
然后去github
上面搜了一下,还又不少人遇到这样的问题,把代码放出来
VUE
项目在本地运行样式没有问题,上线后发现样式没有生效,在浏览器调试模式下,发现-webkit-box-orient: vertical;
属性没了。
本地vue-cli
启动了一个项目只能通过localhost:8080
访问到,同一局域网下其他的手机和电脑并不能通过ip地址访问调试。
vue-cli
项目是通过命令行一键生成的,配置文件中默认生成的是本地调试模式,默认访问地址是localhost:端口号
。
config
文件夹下的 index.js
,将dev
中将host
重新定义为:0.0.0.0
即可。package.json
中script
下dev
的值,在后面加入--host 0.0.0.0
也可以解决"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 0.0.0.0",
"start": "npm run dev",
"lint": "eslint --ext .js,.vue src",
"build": "node build/build.js"
},
在默认情况下,v-model 在每次 input 事件触发后将输入框的值与数据进行同步。你可以添加 lazy 修饰符,从而转变为使用 change 事件进行同步:
<!-- 在“change”时而非“input”时更新 -->
<input v-model.lazy="msg" >
之前写过一篇《VueRouter懒加载》,就是解决加载过慢,这次是优化一下体积。
在 CSS 2.1 中,有三种定位方案——普通流 (Normal Flow) 、浮动 (Floats) 和绝对定位 (Absolute Positioning) ,下面分别对这三种布局简略说明一下。