能否在MERN stack开发中使用HTML?可否先用HTML、CSS写页面再用MERN处理后端?
完全可以,根本不需要为了学MERN把熟悉的HTML、CSS扔掉
你刷到的MERN教程很少提原生HTML/CSS,本质是教程的默认选型倾向——大部分教程默认用React搭配Tailwind、CSS Modules这类工程化CSS方案开讲,不是MERN栈本身不支持原生写法,更不是要求你必须抛弃已经熟练掌握的技术从头学。
具体怎么落地最顺
- 写页面的部分,JSX和原生HTML的逻辑几乎完全通用
JSX的语法本质就是类HTML的标签写法,你之前写过的HTML结构只要改几个极小的语法细节,就能直接用在React项目里:比如把标签上的class属性改成className、把for属性改成htmlFor、所有自闭合标签要补全斜杠,剩下的标签嵌套、层级结构和你平时写静态站的逻辑没有任何区别,根本不需要从零学页面写法。 - CSS部分的兼容度拉满,没有任何强制门槛
你完全可以按照原来的习惯写纯CSS文件,常见的接入方式有两种:- 最省心的方式:把所有写好的CSS文件放到React项目的
public静态目录下,直接在项目的index.html文件里用原生的<link rel="stylesheet">标签引入,和你开发普通静态网站的流程100%一致,不需要学任何CSS工程化工具。 - 稍微规整点的方式:按页面拆分对应的CSS文件,在对应的组件JS文件里用
import './对应页面的样式.css'语句引入,写CSS的语法和原生没有任何区别,不管是类选择器、伪类、媒体查询,还是你之前积累的通用样式片段,拷过来就能直接生效。
- 最省心的方式:把所有写好的CSS文件放到React项目的
- 后端逻辑的衔接不需要改前端写法
等你把前端的HTML/CSS页面全部写完打包之后,直接在Express(MERN里的E)的代码里加一行express.static('前端打包文件所在目录'),就能让后端直接把你写好的纯静态页面返回给访问的用户;原来需要靠纯前端实现的动态逻辑(比如提交表单、读取用户数据),只需要在页面里加简单的JS代码,通过fetch、axios调用你用Node写好的后端接口,数据库操作全部放在后端用MongoDB实现就行,完全不需要引入复杂的前端状态管理工具增加学习负担。
给新手的实操小提醒
别被教程里“必须把所有页面拆成独立React组件、必须用工程化CSS方案”的说法绑架,你刚入门的阶段,优先用自己熟悉的技术减少学习成本、把MERN的完整流程跑通才是最高效的选择。等整个开发流程摸熟了,再慢慢尝试组件化拆分、更灵活的CSS方案也完全不迟。
内容的提问来源于stack exchange,提问作者Riaz
相关产品推荐
相关产品推荐

