|
实训第一天,端实我对着一个像素级还原的训报移动端页面敲了一整天CSS,最后发现所有元素都挤在屏幕左侧。告总浏览器控制台里那行红色的端实“flex-direction: row”像根刺一样扎眼。我盯着它看了十分钟,训报才意识到自己忘了给父容器加display:flex。告总这种低级错误在实训期间反复出现,端实每次都让我怀疑自己是训报不是根本不适合写代码。 但真正让我慌的告总是第五天的响应式布局任务。设计稿在1920px宽度下完美无缺,端实我用了媒体查询、训报rem、告总甚至尝试了Grid,端实可一旦缩到768px,训报导航栏就像散架的告总积木一样塌成一团。那天下午我坐在实训室里,看着旁边同学调试动画效果时流畅的transition,突然觉得前端这行当,光靠背语法根本走不通。 转折发生在第八天。我负责的商城页面需要做购物车数量加减功能,原生JS写起来又臭又长,索性试了试实训手册里提到的Vue。v-model绑定输入框、v-for渲染列表、computed自动计算结果——当页面上的总价随着点击实时跳动时,我忽然理解了为什么框架会成为行业标配。那种感觉就像骑了三天自行车,突然有人递给你一辆电动车。代码量少了三分之一,可读性却翻倍了。 当然,框架也有坑。组件间的props传递让我栽了好几个跟头,父组件改了数据,子组件死活不刷新。最后翻文档才明白,Vue的响应式系统针对的是对象属性新增,而不是数组索引变化。这种细节没人会在教程里标红加粗,只能靠一次次的报错和断点调试去记。 实训后半段,我开始留意代码之外的细节。同一个页面,我写的div嵌套了七八层,而参考项目里用语义化标签加Flex布局就解决了。代码review时带教老师没直接批评,只说了句:“你写的是能跑的代码,不是好维护的代码。”这话比任何教程都管用——布局结构的设计感,直接决定了后续修改时是改一处崩三处,还是轻松替换一个模块。 最意外的是性能优化环节。压缩图片、合并请求、懒加载这些名词我早就在博客里看过,可真当自己用Lighthouse跑出45分的Performance评分时,才意识到加载速度不是玄学。删掉两张装饰性大图,把背景图换成CSS渐变,评分直接跳到78。原来页面快不快,很多时候不取决于服务器带宽,而取决于前端有没有偷懒。 写最后一个小项目时,我刻意没用任何框架,纯手写原生三件套。倒不是想证明什么,只是想知道自己到底学到了多少。结果发现,布局思路比以前清晰了,JS逻辑能拆分成函数了,甚至学会了在写样式前先画个简单的盒子模型草图。实训前我以为前端就是切图和调样式,现在才明白,它更像是在“限制”里找最优解——设备限制、浏览器限制、网络限制,而代码只是表达方案的工具。 二十天实训结束,我电脑里多了十几个报错截图,但再看到红色报错时,已经不会慌了。前端这东西,入门容易精通难,可只要肯盯着控制台一行行读,总能在某个瞬间突然通。那种“原来如此”的瞬间,大概就是支撑我继续写下去的全部理由。 |