突然有个问题:自从大多数公司,开始使用前后端分离的技术。
前后端没有分离之前,页面发XHR请求,XHR请求到服务端,请求数据或者逻辑处理之后,返回给浏览器端,流程结束。浏览器端页面有些需要渲染的,可以直接用velocity,放入一个map对象,就可以渲染出来。如常见的修改操作,首先需要获取信息,然后做出更改。这样非常方便。
前后端分离之后,页面发xhr请求,首先到达前端nodejs这一层,nodejs再转发到后端,后端处理之后再返回。这样真的好么?
使用了前后端分离,加入了nodejs之后,一般公司的项目架构是什么样的?从浏览器端的用户的一次click,到整个业务流程走完,整个流向是如何的???
소위 앞 뒤 완전 분리라는 것에 대해 미신을 가질 필요는 전혀 없습니다. 프런트엔드와 백엔드의 차이점은 템플릿 페이지가 렌더링되는 면과 데이터가 삽입되는 면에 있습니다. 게다가 nodejs도 서버 기술 아닌가요? 프론트엔드와 백엔드를 분리하는 것과는 아무런 관련이 없습니다. 백엔드로의 전달은 브라우저가 js를 실행할 때 전달됩니다. nodejs가 아닌 v8만 호출할 수 있습니다.
프론트엔드와 백엔드가 완전히 분리되어 있다면 React + Redux를 사용하여 구현하는 것이 더 쉽다고 생각합니다. 대략적인 과정은 이렇습니다.
사용자가 React 구성요소를 클릭합니다
Redux는 이 작업을 처리하고 서버에 데이터를 요청합니다.
서버가 데이터를 반환하고 Redux가 이 React 구성요소의 상태를 변경합니다
React는 상태에 따라 이 React Component를 렌더링합니다
사용자가 응답을 봅니다
프런트엔드와 백엔드의 분리. 서버는 데이터(일반적으로 JSON 형식)만 출력하고 JSP와 같은 템플릿 페이지는 출력하지 않으며 모든 요청은 HTML 페이지에서 시작됩니다. ajax를 통해 브라우저 DOM 작업에 전달하여 최종 표시 페이지를 결정합니다.
이 방법에서는 반드시 NodeJS를 사용할 필요는 없습니다.
프로젝트 규모가 크지 않은 이상 프론트엔드 전업 개발자가 있고, 프론트엔드 개발은 백엔드 개발과 병행하여 전면적으로 도입 및 진행되어야 합니다. NodeJS를 사용하는 가장 큰 의미는 프런트엔드 개발이 완전히 독립적이라는 것입니다. 백엔드에서 제공하는 인터페이스에 데이터가 없으면 먼저 이를 조롱할 수 있으며 이는 프런트엔드 개발 및 디버깅에 영향을 미치지 않습니다.