각진 상태단일 페이지 애플리케이션(SPA) 전용 JS?
델은 작성 중인 애플리케이션의 프런트 엔드를 구축하는 옵션을 검토하고 있습니다.또, 델에게 최적인 툴을 평가해, 향후의 진전에 최적인 플랫폼을 제공하는 것을 목표로 하고 있습니다.
이것은 Node.js 프로젝트입니다.당초는 Express를 사용하여 그 경로를 따라갈 예정이었지만, 이 단계를 시작하기 전에 무엇이 있는지 검토하는 것이 최선이라고 판단했습니다.이 어플리케이션에는 어플리케이션의 관점에서는 관련이 있지만 관점에서는 관련이 없다는 점에서 단일 페이지 모델에는 적합하지 않다고 생각되는 영역이 몇 개 있습니다.
Backbone.js, Meteor 등 클라이언트를 구축하기 위해 사용할 수 있는 프레임워크와 Angular를 몇 가지 보았습니다.JS.
이건 꽤 명백한 질문일 수도 있지만, 우리는 앵글이 이 문제를JS는 단일 페이지 애플리케이션 전용이거나 Express와 같은 다중 페이지 애플리케이션에 사용할 수 있습니다.
2013년 7월 17일 업데이트 사용자를 계속 연결하기 위해 프로세스를 진행하는 동안 이 질문을 업데이트하겠습니다.일단은 모든 것을 함께 구축해 나가겠습니다.그리고 그것이 얼마나 잘 될지는 지켜봐야 합니다.우리는 앵귤러에 더 적합한 몇몇 사람들에게 연락을 취했다.JS는 컨텍스트를 공유하는 대규모 애플리케이션을 분할하는 것에 대해 질문을 제기했지만, 한 페이지에서 작업하는 것은 너무 클 수 있습니다.
합의된 내용은 여러 정적 페이지를 제공하고 Angular를 생성할 수 있다는 것이었습니다.이러한 페이지에서만 동작하는 JS 어플리케이션은 SPA 컬렉션을 효과적으로 작성하고 표준 링크를 사용하여 이들 어플리케이션을 링크합니다.솔루션에는 몇 가지 애플리케이션이 있기 때문에 사용 사례는 매우 구체적입니다.앞서 말씀드렸듯이 먼저 단일 코드 베이스를 사용해 보고 최적화하겠습니다.
2016년 6월 18일 업데이트 프로젝트가 낭떠러지에서 떨어졌기 때문에 우리는 결코 많은 것을 할 수 없었습니다.최근에 다시 주워들였지만, angular는 사용하지 않고 대신 React를 사용하고 있습니다.이전 업데이트에서 설명한 아키텍처를 계속 사용하고 있습니다.이 아키텍처에서는 express 및 self contained 앱을 사용하고 있습니다.예를 들어,/chat
를 제공하는 루트를 있습니다./projects
프로젝트 앱 등을 제공합니다.각 앱은 기능 집합의 집합 루트이기 때문에 그 자체로 앱으로 간주되기 위해서는 독립할 수 있어야 합니다.엄밀히 말하면, 모든 정보는 공개되어 있습니다.그것은 기본적인 표현일 뿐이며, 클라이언트측의 앱 구축에 관한 어떤 맛도 사용하고 싶다고 생각하고 있습니다.
천만에요.Angular를 사용하여 다양한 앱을 만들 수 있습니다.클라이언트측 라우팅은, 그 일부에 지나지 않습니다.
클라이언트측 라우팅 이외에 도움이 되는 기능의 리스트가 많이 있습니다.
- 쌍방향 결합
- 템플릿
- 통화 포맷
- 복수화
- 재사용 가능한 제어
- RESTful API 처리
- AJAX 처리
- 모듈화
- 의존성 주입
그 모든 것을 '한 페이지 앱에서만 사용할 수 있다'고 생각하면 말도 안 된다.물론 아니죠.'Juery는 애니메이션이 있는 프로젝트만' 이런 식으로.
프로젝트에 적합한 경우 사용하십시오.
저도 Angular와 처음에는 '어떻게'를 고민했어요.그리고 어느 날, 나는 "그것은 여전히 javascript이다"라는 생각이 들었다.Angular(https://github.com/angular-app/angular-app)라는 책과 함께 내가 가장 좋아하는 것 중 하나)에는 여러 가지 예가 있다.가장 중요한 것은 다른 프로젝트에서와 마찬가지로 js 파일을 로드하는 것입니다.다른 페이지가 올바른 Angular 객체(컨트롤러, 뷰 등)를 참조하고 있는지 확인하고 실행 중인지 확인하기만 하면 됩니다.이게 말이 됐으면 좋겠는데, 답이 너무 간단해서 간과했어요.
내 경험이 누군가에게 도움이 될지도 몰라.우리는 우리의 프로젝트를 논리적으로 나누었다.피드용으로 사용하는 SPA, 맵에 사용하는 SPA, 사용자 프로파일 편집에 사용하는 SPA 등.예를 들어 피드, 사용자, 지도의 세 가지 앱이 있습니다.다음과 같이 구분된 URL에서 사용합니다.
https://host/feed/#/top/
https://host/user/#/edit/1/
https://host/map/favorites/#/add/
이러한 어플리케이션에는 각각 어플리케이션 내의 스테이트간에 독자적인 로컬라우팅 매핑이 있습니다.각 어플리케이션은 실제로 필요한 컨텍스트와 부하 의존성만으로 동작하기 때문에 좋은 프랙티스라고 생각합니다.또한 디버깅 및 통합 프로세스에 매우 적합합니다.
실제로 SPA 어플리케이션을 쉽게 혼재시킬 수 있습니다.예를 들어 피드는 url with angularjs 어플리케이션, 사용자 어플리케이션 with reactjs 및 backbone.js 어플리케이션에 매핑됩니다.
질문에 대한 답변:
Angular는 SPA뿐만 아니라 SPA 어플리케이션에도 적합하고 고속으로 대응하지만, 굳이 다양한 SPA 어플리케이션의 MPA 어플리케이션을 구축하지 않습니다.그러나 url 아키텍처를 생각하면 애플리케이션의 SEO 가용성을 잊지 마십시오.
저도 그 생각을 지지합니다.
프로젝트와 앱의 차이점은 무엇입니까?앱은 웹 로그 시스템, 공개 기록 데이터베이스 또는 간단한 여론조사 앱과 같은 작업을 수행하는 웹 응용 프로그램입니다.프로젝트는 특정 웹 사이트의 구성 및 앱 모음입니다.프로젝트에는 여러 개의 앱이 포함될 수 있습니다.하나의 앱이 여러 프로젝트에 포함될 수 있습니다.
클라이언트 데이터 바인딩이 있는 몇 페이지만 있으면 Knockout과 Javascript 네임스페이스를 사용할 수 있습니다.
녹아웃은 특히 복잡하지 않은 하위 호환성이 필요하고 페이지가 매우 직선적인 경우에 적합합니다.서드파티제 컴포넌트를 사용하는 경우 Knocko의 커스텀바인딩은 간단하고 사용하기 쉽습니다.
Javascript 네임스페이스로 코드를 분리하여 관리할 수 있습니다.
var myCo = myCo || {};
myCo.page = {
init: function(){ ... },
...
}
또한 다른 스크립트가 로드된 후 스크립트 태그에
<script>
myCo.init();
</script>
중요한 것은 필요할 때 필요한 도구를 모두 사용할 수 있다는 것입니다.데이터 바인딩이 필요합니까?녹아웃(또는 당신이 좋아하는 것)루팅이 필요하신가요? sammy.js(또는 당신이 좋아하는 것)
클라이언트 코드는 원하는 만큼 단순하거나 복잡할 수 있습니다.Angular를 기존 독점 프레임워크와 함께 매우 복잡한 사이트에 통합하려고 시도했지만 악몽이었습니다.각도는 새로 시작하는 경우 매우 좋지만 학습 곡선이 있어 매우 빡빡한 워크플로우에 갇힙니다.따르지 않으면 코드가 빠르게 엉킬 수 있습니다.
SPA를 개발하려는 거라면 앵글은 과잉 살상이에요물론입니다. 이미 개발에 익숙하다면 그렇게 하세요.그러나 이 프레임워크가 처음이고 SPA만 개발하면 된다면, 저는 몇 가지 특전이 있는 단순한 것을 선택하겠습니다.Vue.js 또는 Aurelia.io에 접속할 것을 권장합니다.
Vue.js는 양방향 데이터 바인딩, MVVM, 재사용 가능한 컴포넌트, 단순하고 빠른 픽업, 적은 쓰기 코드 등을 사용합니다.Angular와 React의 몇 가지 장점을 결합했습니다.
Aurelia.io, 솔직히 잘 모르겠어요.하지만 제가 주위를 살짝 둘러본 결과 위와 비슷한 대안을 찾을 가치가 있을 것 같습니다.
링크:
https://vuejs.org/
http://aurelia.io/
언급URL : https://stackoverflow.com/questions/15231251/is-angularjs-just-for-single-page-applications-spas
'programing' 카테고리의 다른 글
TypeError: router.use()에 미들웨어 기능이 필요하지만 오브젝트를 취득했습니다. (0) | 2022.09.27 |
---|---|
MySQL: 열이 null인 행 선택 (0) | 2022.09.27 |
열의 모든 값을 소문자로 업데이트 (0) | 2022.09.27 |
MySQL에서 문자열로 동작하기 위한 breakdrop()에 상당합니다. (0) | 2022.09.27 |
JavaScript에서 문자열에서 파일 확장자를 자르는 방법 (0) | 2022.09.27 |