先说一下为什么要从jsp过渡到vue
1.准备把系统全部升级为api项目(spring-boot restful)遗弃掉jsp,主要为了解决多项项目后台代码重用问题,项目升级为微服务(spring-cloud)架构,比如首页一个项目 后台管理一个项目中间肯定有很多重复业务代码,当然可以通过搭建私有maven源封装公共代码,本文中先不考虑这类解决方案。另外vue这类框架组件模板这些特性开发和维护起来和纯撸jQuery逻辑清晰不少。
2.项目发展大了肯定要前后端分离,当然前期肯定全栈式开发前后端两遍忙乎,但是个人感觉后期收益高于前期的辛苦。
3.jsp渲染确实慢
4.个人架构方向爱好 ,java流的技术站方向》spring-cloud+spring-boot restful+vue 这种架构。
问题1:不准备一次性重构,希望渐进式迁移(直接上全家桶不准备在jsp里面写vue代码),目前只能想到1种方案利用ngxin的location匹配url后面的路径区分是路由到原来的jsp页面还是新项目的vue|react页面,但是感觉这种方案不是特别好,希望有segmentfault前后端大神前来解惑。
问题2:大家都说SPA应用适合中后端开发,是我理解有误还是有其他原因? 电商 比如淘宝, 社交 比如QQ空间这类产品如果用SPA应用开发会有什么弊端?仅仅是因为SEO问题么?
react + antd를 사용하는데, 클라이언트의 개발 아이디어와 웹페이지가 통일되어 있다는 점이 가장 큰 장점이라고 생각합니다.
클라이언트를 개발한다면 서버는 나머지 API만 제공하면 됩니다. 반응 네이티브를 사용하면 작업 부하를 줄일 수 있습니다
1. JSP를 이해하지 못하면 감히 대답할 수 없습니다.
2. 말씀하신 대로
Vue
타오바오, 소셜 네트워킹, QQ 스페이스 등의 웹사이트를 개발하는 것은 불가능하지 않습니다. 반대로 단일 페이지로 만들어질 것입니다. github에서 누군가 Douban을 모방한 데모를 만들었고, 특히 웹사이트가 모바일 단말기를 지원하려는 경우 네트워크 환경이 열악한 경우에도 단일 페이지 응용 프로그램을 매우 빠르게 로드할 수 있습니다.단일 페이지 애플리케이션은 기존 웹 페이지에 비해 SEO 친화적이지 않으며 북마크 기능을 지원하려면 자체 코드를 작성해야 합니다.
쓰다 보면 이러한 프런트 엔드 프레임워크에서 디스플레이 웹 사이트를 작성하는 것이 너무 어리석고 페이지 내 상호 작용이 없다는 것을 깨닫게 될 것입니다(한 번의 클릭으로 페이지를 변경해야 함). 이러한 프레임워크의 규칙에 따라 다시 작성해야 하며 피곤하고 의미가 없으며 배경 템플릿과 완전히 비교할 수 없습니다.
JSP 렌더링이 느립니다. 무슨 말인지 모르겠습니다. 백그라운드 Java가 느리게 실행됩니까? 메시지 큐를 사용하여 비동기식, 로드 밸런싱 등이 가능한 모든 것을 만듭니다. 프론트엔드 렌더링이 느리나요? JS/CSS 및 기타 정적 파일은 CDN에 캐시됩니다.
미드엔드 및 백엔드 관리 플랫폼은 이러한 프런트엔드 프레임워크에 매우 적합합니다
Vue를 사용하고 있으므로 JSP는 백엔드 렌더링입니다. 페이지가 생성되어 브라우저로 전송됩니다.
Vue 및 Java를 사용하여 만듭니다. 단일 페이지 웹사이트. 웹사이트를 방문하면 java는 브라우저에 정적 HTML 페이지와 js를 보냅니다. 그러면 프런트 엔드는 라우팅을 시뮬레이트하여 HTTP 요청을 보냅니다. java가 HTTP 요청을 수신하고 데이터를 반환한 후 Vue는 데이터 획득 요청을 수신하고 디스플레이 페이지를 다시 렌더링합니다.
페이지를 렌더링할 필요가 없기 때문에 Java는 REST를 사용하여 json 데이터를 보내고 받는 역할만 담당하므로 성능은 확실히 더 높습니다