Programming

AngularJS는 단일 페이지 애플리케이션 (SPA) 전용입니까?

procodes 2020. 5. 8. 21:31
반응형

AngularJS는 단일 페이지 애플리케이션 (SPA) 전용입니까?


우리는 우리가 만들고있는 응용 프로그램의 프런트 엔드를 구축 할 수있는 옵션을 찾고 있으며 우리에게 도움이 될 도구를 평가하고 앞으로 나아갈 최고의 플랫폼을 제공하려고합니다.

이것은 Node.js 프로젝트입니다. 우리의 초기 계획은 Express를 사용하고 해당 경로를 내려가는 것이었지만,이 단계를 시작하기 전에 무엇이 있는지 검토하는 것이 가장 좋습니다. 우리의 응용 프로그램에는 단일 페이지 모델에 적합하지 않다고 생각되는 여러 영역이 있습니다.

Backbone.js , Meteor클라이언트를 구축하는 데 사용할 수있는 몇 가지 프레임 워크 와 AngularJS를 보았습니다.

이것은 명백한 질문 일 수 있지만 AngularJS가 순전히 단일 페이지 응용 프로그램 용인지 아니면 Express와 같은 다중 페이지 응용 프로그램에 사용될 수 있는지 여부를 해독 할 수 없습니다.


업데이트 2013 년 7 월 17 일 사람들을 계속 돌보기 위해 프로세스를 진행 하면서이 질문을 업데이트 할 것입니다. 우리는 지금 모든 것을 함께 구축 할 것이며 그것이 얼마나 잘 수행되는지 볼 것입니다. 우리는 우리보다 AngularJS에 더 많은 자격을 갖춘 사람들에게 연락하여 컨텍스트를 공유하는 큰 응용 프로그램을 분할하는 것에 대한 질문을 제기했지만 한 페이지에서 너무 큰 작업을 할 수 있습니다.

합의는 여러 정적 페이지를 제공하고 해당 페이지에서만 작동하는 AngularJS 응용 프로그램을 만들어 SPA 모음을 효과적으로 만들고 표준 연결을 사용하여 해당 응용 프로그램을 서로 연결할 수 있다는 것입니다. 이제 솔루션에 여러 응용 프로그램이 있으므로 유스 케이스가 매우 구체적이므로 먼저 단일 코드 기반을 시도하고 거기서부터 최적화하겠습니다.

업데이트 2016 년 6 월 18 일 프로젝트가 절벽에서 떨어 졌으므로 너무 많은 일을 끝내지 못했습니다. 최근에 다시 선택했지만 더 이상 각도를 사용하지 않고 대신 React를 사용하고 있습니다. 우리는 익스프레스 및 자체 포함 앱을 사용하는 이전 업데이트에 요약 된 아키텍처를 계속 사용하고 있습니다. 예를 들어 /chatReact 채팅 앱을 제공하는 특급 경로 /projects가 있고 프로젝트 앱을 제공하는 다른 경로 가 있습니다. 곧. 우리가 그것을 보는 방식은 각 앱이 기능 세트 측면에서 총체적인 루트라는 것입니다. 앱 자체로 간주되기 위해서는 독립형이어야합니다. 기술적으로 모든 정보, 기본 표현 및 사용하려는 클라이언트 측 앱 구축의 모든 맛이 있습니다.


전혀. Angular를 사용하여 다양한 앱을 빌드 할 수 있습니다. 클라이언트 측 라우팅은 그 중 작은 부분 일뿐입니다.

클라이언트 측 라우팅 외부에 도움이되는 많은 기능 목록이 있습니다.

  • 양방향 바인딩
  • 템플릿
  • 통화 형식
  • 복수
  • 재사용 가능한 컨트롤
  • RESTful API 처리
  • AJAX 취급
  • 모듈화
  • 의존성 주입

"단일 페이지 앱에서만 사용할 수있다"고 생각하는 것은 미친 일입니다. 물론 그렇지 않습니다. "Jquery는 애니메이션이있는 프로젝트에만 해당됩니다"라고 말하는 것과 같습니다.

프로젝트에 적합하면 사용하십시오.


나는 처음으로 Angular와 함께 "어떻게"와 씨름했다. 그러던 어느 날, 그것은 "아직도 자바 스크립트입니다"라고 시작되었습니다. Angular의 입출력에 대한 많은 예제가 있습니다 ( https://github.com/angular-app/angular-app 서적과 함께 내가 좋아하는 것 중 하나 ). 가장 기억해야 할 것은 다른 프로젝트에서와 마찬가지로 js 파일을로드하는 것입니다. 다른 페이지가 올바른 Angular 객체 (컨트롤러, 뷰 등)를 참조하고 꺼져 있는지 확인하기 만하면됩니다. 나는 이것이 의미가 있기를 바라지 만 대답은 너무 간단해서 간과했다.


아마도 내 경험은 누군가에게 유용 할 것입니다. 우리는 프로젝트를 논리적으로 분리했습니다. 피드에 사용하는 하나의 스파, 맵과 함께 작동하는 스파, 사용자 프로필 편집을위한 스파 등. 예를 들어 피드, 사용자 및 맵의 세 가지 앱이 있습니다. 분리 된 URL에서 다음과 같이 사용합니다.

https://host/feed/#/top/
https://host/user/#/edit/1/
https://host/map/favorites/#/add/

이러한 각 응용 프로그램에는 응용 프로그램의 상태간에 자체 로컬 라우팅 매핑이 있습니다. 각 응용 프로그램은 실제로 필요한 컨텍스트와로드 종속성으로 만 작동하기 때문에 좋은 습관이라고 생각합니다. 또한 디버그 및 통합 프로세스에 매우 적합합니다.

실제로 SPA 응용 프로그램을 혼합하여 쉽게 만들 수 있습니다. 예를 들어 피드는 angularjs 응용 프로그램, url이있는 사용자 응용 프로그램, urls 및 backbone.js 응용 프로그램으로 연결됩니다.

귀하의 질문에 대한 답변 :

SPA를위한 Angular는 SPA 애플리케이션을위한 빠르고 빠른 플레이를 제공하지만, 다양한 SPA 애플리케이션의 MPA 애플리케이션을 구축하려는 귀찮은 사람은 없습니다. 그러나 URL 아키텍처에 대한 생각은 응용 프로그램의 SEO 가용성을 잊지 마십시오.

나는 또한 아이디어를지지한다 :

프로젝트와 앱의 차이점은 무엇입니까? 앱은 웹 로그 시스템, 공개 레코드 데이터베이스 또는 간단한 설문 조사 앱과 같은 작업을 수행하는 웹 애플리케이션입니다. 프로젝트는 특정 웹 사이트에 대한 구성 및 앱 모음입니다. 프로젝트에는 여러 앱이 포함될 수 있습니다. 앱은 여러 프로젝트에있을 수 있습니다.


클라이언트 데이터 바인딩이있는 몇 페이지 만 있으면 Knockout 및 Javascript Namespacing을 사용하십시오.

Knockout is great, especially if you need uncomplicated backward compatibility and have fairly straight forward pages. If you're using 3rd party components, Knockout's custom bindings are straightforward and easy to work with.

Javascript namespacing allows you to keep your code separate and manageable.

var myCo = myCo || {};
myCo.page = {
    init: function(){ ... },
    ...
}

And in a script tag after your other scripts are loaded

<script>
    myCo.init();
</script>

The key is, you use whatever tool you want for when you need it. Need databinding? Knockout (or whatever you like). Need routing? sammy.js (or whatever you like).

Client code can be as simple or complicated as you want it. I tried integrating Angular into a very complicated site with an existing proprietary framework, and it was a nightmare. Angular is great if you're starting fresh, but it has a learning curve and locks you into a very tight workflow. If you don't follow it, your code can get really tangled really fast.


I'd say Angular is overkill if you're just looking to develop a SPA. Sure, if you're already comfortable developing with it, go ahead. But if you're new to the framework and only need to develop a SPA, I'd go with something more simple with a number of its own perks. I recommend looking into Vue.js or Aurelia.io.

Vue.js uses two-way data binding, MVVM, reusable components, simple and quick to pickup, less code to write, etc. It combines some of the best features of Angular and React.

Aurelia.io, in all honesty, I don't know much about. But I've peeked around and it seems an alternative worth looking into, similar to the above.

Links:
https://vuejs.org/
http://aurelia.io/

참고URL : https://stackoverflow.com/questions/15231251/is-angularjs-just-for-single-page-applications-spas

반응형