游客发表
你打开任何一个网页,段开看到的段开排版、按钮、段开动画、段开下拉菜单,段开甚至页面滚动时图片突然加载出来的段开那个效果——背后都是前端开发干的活。说直白点,段开前端开发就是段开把设计师画在 Figma 里的静态图,变成浏览器里能点、段开能滑、段开能输入的段开东西。
我刚开始接触这行时以为前端就是段开写 HTML 和 CSS,把字和图片摆到该在的段开位置就完了。后来发现完全不是段开。一个电商网站的段开商品列表页,你看到的是一个个卡片,但前端要处理的是:从接口拿到 JSON 数据,循环渲染出每个卡片,给“加入购物车”按钮绑定点击事件,点击后还要更新右上角购物车的数量,同时发请求给后端。这些逻辑全在浏览器里跑。
HTML 管结构。比如一个登录框,哪个是输入框、哪个是按钮、哪个是提示文字,用标签标出来。CSS 管样子。按钮圆角多大、颜色是 #FF6B35 还是 #E63946、鼠标悬停时背景变深还是变浅,这些全靠 CSS 控制。JavaScript 管行为。用户点了按钮之后发生什么,表单能不能提交,密码太短要不要弹提示,都是 JS 的事。
但今天的前端远不止这三样。你写 React 或 Vue 的时候,其实是在用 JavaScript 描述“界面应该长什么样”,框架帮你把真实 DOM 操作藏起来。比如用 React 写一个计数器:
function Counter() { const [count, setCount] = useState(0); return ( <button onClick={ () => setCount(count + 1)}> 点了 { count} 次 </button> ); } 这段代码没有直接操作 DOM,但点击按钮后页面上的数字会变。框架在背后做了 diff 计算,只更新变化的那一小块。这种写法让前端能应付越来越复杂的交互,比如在线文档的实时协作、地图上的拖拽标记、视频剪辑器的时间轴。
前端工程师每天打交道的东西很杂。早上可能调一个 CSS 的 flex 布局,让三栏在窄屏下自动堆叠;下午要封装一个带搜索、分页、排序的表格组件;晚上还得看性能面板,发现某个动画导致掉帧,然后改成 transform 动画。浏览器兼容性也是躲不开的。Safari 上某个 API 不生效,Chrome 上却好好的,就得查 caniuse 找替代方案。
有个细节挺有意思。很多人以为前端就是做“好看”,但实际工作中,可访问性(a11y)经常比视觉效果更优先。比如一个模态框弹出来,键盘用户按 Tab 键能不能在里面的按钮之间循环?按 Esc 能不能关掉?屏幕阅读器读出来的顺序对不对?这些不写代码根本看不出来,但漏了就是 bug。
工具链也够折腾的。以前写个页面,建个 index.html 就能跑。现在可能要配 Webpack 或 Vite,装 Babel 转译 JSX,用 PostCSS 加浏览器前缀,还要配 ESLint 和 Prettier 保证代码风格一致。新项目初始化完,node_modules 动辄几百兆。有时候一个依赖升级,整个构建就挂了,得花半天排查版本冲突。
不过前端也有很爽的地方。你改一行 CSS,浏览器里立刻看到效果。写一个交互逻辑,点一下按钮就验证对错。这种即时反馈是后端或算法岗位很难体会的。而且前端产物直接面向用户,你做的按钮、表单、动画,几百万人都能摸到、点到。一个加载动画从卡顿改成流畅,用户可能说不出哪里变了,但就是觉得“这个网站用着舒服”。
所以前端开发到底是什么?是拿 HTML、CSS、JavaScript 这三样基础材料,加上框架、工具、浏览器 API,把数据和设计变成活生生的界面。它既需要抠像素的耐心,也需要写逻辑的严谨,还得跟不断变化的浏览器标准和框架版本保持同步。干这行的人,电脑里通常开着至少五个标签页:文档、Stack Overflow、caniuse、设计稿、还有正在调试的页面。
友情链接