프레임 워크는 더 많은 동작이 내장 된 추상 디자인을 구현합니다. 이를 사용하려면 자신의 클래스를 서브 클래스 또는 삽입하여 프레임 워크의 다양한 장소에 동작을 삽입해야합니다. 프레임 워크의 코드는이 시점에서 코드를 호출합니다.
내 생각에, React는 라이브러리보다 프레임 워크의 동작과 더 일치합니다. 기술적으로 프레임 워크는 아니지만 개발자는 종종 생태계의 많은 도구와 패키지를 채택하여 작동합니다.
반응
-
웹 사이트 : https://www.php.cn/link/138a14af4a8c188a6c41cafd9400a30
<: :> github : https://www.php.cn/link/9ed19fde2d99cd17ceafd0fe127f3176
React는 원래 2013 년 Facebook에서 출시되었으며 현재 가장 인기있는 프론트 엔드 JavaScript 프레임 워크입니다. Facebook, Netflix 및 Airbnb와 같은 회사는 모두 생산 환경에서 React를 사용하며 대규모 개발자 기반을 보유하고있어 온라인으로 도움과 리소스를 쉽게 찾을 수 있습니다.
React의 주요 목적은 재사용 가능한 구성 요소의 대화식 사용자 인터페이스를 결합하는 것입니다. 템플릿에 JSX (JavaScript의 구문 확장)를 사용하고 데이터로 구성 요소를 채우기 위해 일원 데이터 흐름 모델을 구현합니다. 구성 요소 데이터가 변경 될 때마다 React는 가상 DOM을 사용하여 페이지를 빠르고 효율적으로 업데이트합니다.
개발자 도구는 매우 유용합니다. React Team은 CLI (React App 만들기)를 구축하고 유지하여 새로운 프로젝트와 Chrome 및 Firefox를위한 개발자 도구 확장을 빠르고 쉽게 구축했습니다. 다양한 작업 (예 : 라우팅, 처리 양식 및 애니메이션)과 Next.js 및 Gatsby와 같은 React 기반 프레임 워크를 달성 할 수있는 많은 타사 패키지가 있습니다.
반응은 "한 번 배우고, 어디서나 글을 쓰는 것"이라는 개념을 따릅니다. React Native를 사용하여 모바일 애플리케이션을 구동 할 수 있으며 노드를 사용하여 서버 측에서 렌더링 할 수 있습니다. 이는 우수한 SEO 지원을 의미하며 서버 구성 요소의 도입으로 더 나아질뿐입니다.
React의 주요 비판 중 하나는 너무 제한되지 않았다는 것입니다. 응용 프로그램의 뷰 계층에만 초점을 맞추고 다른 모든 것을 개발자에게 맡깁니다. 어떤 사람들은이 자유를 좋아하지만 다른 사람들, 특히 새로운 개발자들은이 장려되지 않은 구조화되지 않은 코딩 접근법에 압도 될 수 있습니다.
React는 중간 정도의 학습 곡선을 가지고 있습니다. 불변성 및 순수한 기능과 같은 다양한 기능적 프로그래밍 패러다임의 사용을 장려합니다. 즉, 개발자는 심각한 것을 구축하기 전에 이러한 개념을 마스터하는 것이 좋습니다.
React의 제한되지 않은 접근 방식에 만족하고 대부분의 개발 프로세스를 개발자에게 남겨두면 모든 규모의 데이터 중심 애플리케이션을위한 훌륭한 선택입니다.
angular
-
웹 사이트 : https://www.php.cn/link/2c8a0f42adb0345a7e348beb5706d949
<: :> github :
Angular는 프론트 엔드 프레임 워크 분야의 Google 제품입니다. 2010 년에 AngularJS (또는 Angular 1)로 태어 났으며 즉시 성공했습니다. 주로 개발자가 현재 단일 페이지 응용 프로그램이라고 부르는 것을 구축 할 수있는 첫 번째 프레임 워크이기 때문입니다.
큰 JavaScript 응용 프로그램을 구축 해야하는 성능 문제와 도전을 해결하기 위해 Google은 2016 년에 Angular 2 (현재 앵글)를 처음부터 발표하여 AngularJS를 다시 작성했습니다. 이 두 버전 사이에는 간단한 마이그레이션 경로가 없으므로 AngularJS와 Angular는 두 개의 별도의 프레임 워크가됩니다. AngularJS는 이제 유지 보수를 위해 중단되었으며 새로운 프로젝트에 사용해서는 안됩니다.
Angular의 경우, 프론트 엔드 프레임 워크 세계의 헤비급입니다. Google 및 Microsoft와 같은 회사는 제작 환경에서이를 사용하므로 완전히 테스트되었습니다. 온라인에서 사용할 수있는 많은 리소스 (예 : 탁월한 영웅 튜토리얼)가 있으며 스택 오버플로 앵글에 대한 많은 질문도 있습니다.
view 레이어 만 처리하는 React와 달리 Angular는 단일 페이지 클라이언트 애플리케이션을 구축하기위한 완벽한 솔루션을 제공합니다. Angular 구성 요소는 양방향 데이터 바인딩을 구현하여 이벤트를 동시에 듣고 부모 및 자식 구성 요소 간의 값을 업데이트 할 수 있습니다. 템플릿은 HTML 스 니펫으로 특수 구문을 사용하여 많은 Angular의 특징을 활용할 수 있습니다. TypeScript는 각도 개발의 주요 언어로,이 프레임 워크는 특히 엔터프라이즈 수준의 응용 프로그램에 적합합니다.
도구는 매우 유용합니다. Angular는 Angular 응용 분야를 초기화, 개발, 구축 및 유지하기 위해 고도로 세련된 CLI를 제공합니다. Chrome 및 Firefox Dev 도구 확장도 사용하여 Angular Applications를 디버그하는 데 도움이됩니다. Angular는 형태 및 라우팅과 같은 많은 일반적인 작업을 처리 할 수있는 솔루션을 제공하지만 여전히 타사 라이브러리의 풍부한 생태계가 있습니다.
내 생각에, Angular의 학습 곡선은 여기에 나열된 모든 프레임 워크 중 가장 가파른 것입니다. 개발자는 프레임 워크를 효과적으로 사용하기 위해 데코레이터 및 의존성 주입과 같은 개념뿐만 아니라 TypeScript에 익숙해야합니다. 따라서 새로운 개발자에게는 적합하지 않습니다. 대신, 팀워크가 대규모 응용 프로그램을 구축하는 것이 더 적합합니다.
반응과 각도의 차이에 대한 포괄적 인 이해를 원한다면 "React vs. Angular : 심층적 인 비교"를 참조하십시오.
vue.js
-
이 통계는 vue v2에 적용됩니다. 버전 3을 사용할 수 있지만 vue@next로 설치해야합니다.
VUE 사용에 대한 장벽은 낮습니다. 부분적으로는 응용 프로그램 구축에 대한 점진적인 접근 방식을 사용하기 때문에 부분적으로 HTML, CSS 및 JavaScript를 기반으로하기 때문입니다.
vue는 모든 크기의 응용 프로그램에 탁월한 선택입니다. 경험이 적은 개발자뿐만 아니라 프레임 워크에서 더 많은 구조와 지침을 얻는 것을 선호하는 개발자에게 적합합니다.
-
svelte
웹 사이트 : https://www.php.cn/link/bf9106abee8a404bd4d041e12af5883b
<: :> github :
-
2016 년 Rich Harris가 발표 한 Svelte는 프레임 워크 필드의 새로운 멤버 이며이 목록의 다른 프레임 워크와 웹 애플리케이션을 구축하는 데 다른 접근 방식을 사용합니다. 웹 사이트는 다음과 같습니다.
Svelte는 런타임에 응용 프로그램 코드를 해석하지 않고 구축 할 때 응용 프로그램을 이상적인 JavaScript 코드로 변환합니다. 즉, 프레임 워크의 추상화에 대한 성능을 지불하지 않으며 응용 프로그램이 처음로드되면 처벌받지 않습니다.
다시 말해서, 가상 DOM의 개념을 피하지만 응용 프로그램 상태가 변경 될 때 DOM을 업데이트 할 때 구축 될 때 코드를 작고 일반 JavaScript 모듈로 컴파일합니다. 당신이 상상할 수 있듯이, 이것은 응용 프로그램을 더 빨리 만들고 공간을 덜 차지합니다. Svelte는 원시 처리 상태 관리를 복원하고 상자 밖에서 응답 성을 제공합니다. -
불행히도,이 도구는 지금 약간의 두통입니다. 처음에 SAPPER (Svelte 위에 구축 된 응용 프로그램 프레임 워크)는 사전 정의 된 구조가있는 Svelte 응용 프로그램을 구축하고 라우팅 및 서버 측 렌더링과 같은 고급 기능을 장착하는 데 사용되었습니다. 그러나 2020 년 11 월, Svelte의 제작자들은 Sapper 버전 1.0이 출시되지 않을 것이라고 발표했으며 Sveltekit은 이제 Svelte로 응용 프로그램을 구축하는 유일한 권장 방법입니다. 크롬 및 파이어 폭스 용 브라우저 개발자 도구 확장 및 다양한 타사 모듈은 더 성숙한 프레임 워크보다 훨씬 적습니다.
Svelte의 학습 곡선은 매우 낮지 만 커뮤니티는 여전히 작으며 여기에 언급 된 3 가지 프레임 워크와 같은 호소력을 얻지 못했습니다. 그러나 IBM 및 New York Times와 같은 회사는 생산 환경에서이를 사용하고 있으며 앞으로 몇 달과 몇 년 동안주의를 기울여야 할 프레임 워크입니다. svelte는 아직 충분히 성숙하지 않으므로 소규모 프로젝트에 적합합니다. 그러나 이것은 변화하고 있습니다. Sveltekit은 오픈 베타 단계에 있으며 커뮤니티가 성장하고 있습니다. Svelte는 현재 여전히 새로 온 사람이지만이 지역에 집중해야합니다 ...
ember.js
-
웹 사이트 : https://www.php.cn/link/feae21bb32b7b4aa690fab151b60b598
<: :> github : https://www.php.cn/link/27e0f4118effff145aeecd8367fbb37
나는이 기사의 마지막 프레임 워크로서 Ember를 소개합니다.이 기사는 프론트 엔드 프레임 워크의 초기부터 존재하기 때문입니다. 원래 2011 년에 출시되었지만 여전히 개발자들 사이에서 끊임없는 인기를 유지합니다.
-
그것은 거의 10 년이 지났으며 React, Vue, Svelte 및 기타 모든 프레임 워크로 거슬러 올라갑니다. 이 프레임 워크는 프론트 엔드 과대 광장의 최전선에 있지 않았지만, 팀은 2020 년 유럽에서 50 대의 핀 테크 회사 인 Qonto와 Clark을 포함하여 제품을 안정적이고 지속적으로 출시 할 수있게 해줍니다.
Angular와 유사하게 Ember는 응용 프로그램 개발에보다 포괄적 인 접근 방식을 취하며 최신 프론트 엔드 JavaScript 응용 프로그램을 구축하는 데 필요한 모든 것을 제공합니다. 여기에는 라우팅 솔루션, 데이터 계층 및 기본적으로 모든 애플리케이션에 내장 된 완전한 기능이있는 최신 테스트 도구가 포함됩니다. 6 주 릴리스주기 (새로운 사소한 릴리스가 릴리스 될 때)를 따라 안정성에 전념합니다. 이는 빠르게 성장하는 프레임 워크에 의해 남겨 두지 않도록 응용 프로그램을 지속적으로 다시 작성할 수없는 개발자에게는 실질적인 이점이 될 수 있습니다.
Ember CLI (Ember 응용 프로그램을 생성, 빌드, 테스트 및 서비스하는 공식적인 방법)에서 Ember Inspector (공식적으로 지원되는 브라우저 애드온에 이르기까지 Ember CLI에서 Ember 주변에 광범위한 도구가 등장했습니다. 응용 엠버 객체). 사용 가능한 타사 라이브러리도 있으며 CLI는이를 배포하기위한 공통 형식 (예 : Ember Addons)을 제공합니다.
Ember의 커뮤니티는 RECT의 커뮤니티만큼 크지는 않지만 회원은 매우 활발하고 코드 문제에 대한 도움을 구할 수있는 포럼과 불화 서버가 있습니다. Ember는 "구성에 대한 컨벤션"접근 방식을 사용하여 여기에 나열된 가장 의견이 많은 프레임 워크입니다. 이 플러스 개발자는 학습 곡선을 가파르거나 가파른 상태로 만들기 위해 직렬화 및 어댑터와 같은 고급 개념에 익숙해야합니다.
ember는 초보자 또는 소규모 프로젝트에 적합하지 않을 수 있습니다. 움직이는 부품이 많고 물건을 만드는 방법에 많은 유연성을 제공하지 않습니다. 그러나 팀과 함께 풍부하고 복잡한 프론트 엔드 애플리케이션을 구축 할 때는 빛을 발합니다.
결론
이것은 오늘날 시장에서 가장 인기있는 5 가지 프론트 엔드 프레임 워크를 비교 한 것입니다. 이것은 각 프레임 워크의 기능을 철저하게 살펴 보지 않지만 다음 프로젝트에 어떤 주요 경쟁자가 적합한 지, 어떤 프레임 워크가 추가로 탐색 할 가치가 있는지에 대한 아이디어를 제공하기를 바랍니다.
질문이나 의견이 있으시면 토론을 위해 Sitepoint 포럼에 참여하지 않겠습니까?
프론트 엔드 프레임 워크 FAQ (FAQ)
프론트 엔드 프레임 워크를 선택할 때 고려해야 할 주요 요소는 무엇입니까?
프론트 엔드 프레임 워크를 선택할 때 학습 곡선, 커뮤니티 지원, 문서화, 유연성 및 성능과 같은 요소를 고려해야합니다. 프론트 엔드 개발에 익숙하지 않은 경우 학습 곡선이 중요합니다. 일부 프레임 워크는 다른 프레임 워크보다 배우기 쉽습니다. 문제가 발생할 때 도움을 받으려면 커뮤니티 지원이 필수적입니다. 대규모 활성 커뮤니티는 종종 더 많은 자원과 튜토리얼을 의미합니다. 좋은 문서화는 학습 과정을 더 매끄럽게 만들 수 있습니다. 유연성은 프레임 워크가 다양한 프로젝트 요구에 적응할 수있는 능력을 말합니다. 마지막으로 성능은 응용 프로그램의 속도 및 사용자 경험에 영향을 미칩니다.
Angular는 다른 프론트 엔드 프레임 워크와 어떻게 비교됩니까?
Angular는 Google에서 개발 한 강력하고 기능이 풍부한 프레임 워크입니다. 양방향 데이터 바인딩, 종속성 주입 및 모듈 식 아키텍처로 유명합니다. 그러나 학습 곡선은 다른 프레임 워크에 비해 가파른다. 크고 복잡한 응용 프로그램에 적합합니다.
React 사용의 장점은 무엇입니까?
React는 Facebook에 의해 개발되었으며 가상 DOM으로 유명하며 실제 DOM에서 직접 작동을 최소화하여 성능을 향상시킵니다. 재사용 성과 유지 가능성을 촉진하는 구성 요소 기반입니다. 또한 거대한 커뮤니티와 큰 도서관이 있습니다.
왜 내가 다른 프론트 엔드 프레임 워크보다 vue를 선택합니까?
vue는 점진적인 프레임 워크입니다. 즉, 단계별로 채택 할 수 있습니다. 배우기 쉽고 각도와 반응보다 더 간단한 문법이 있습니다. 또한 가상 DOM 및 구성 요소 기반 아키텍처도 있습니다. 중소형 프로젝트에 적합합니다.
각도에서 양방향 데이터 바인딩의 개념을 설명 할 수 있습니까?
각도에서 양방향 데이터 바인딩은 모델의 데이터가 변경되면 뷰 가이 변경을 반영하고 그 반대를 반대한다는 것을 의미합니다. 모델과보기 간의 동기화는 코드를 단순화하고 가독성을 향상시킵니다. React and vue의 가상 Doms는 무엇입니까?
가상 DOM은 실제 DOM의 가벼운 사본입니다. 변경이 발생하면 가상 DOM이 먼저 변경됩니다. 그런 다음 차이 알고리즘은 새로운 가상 DOM을 기존 가상 DOM과 비교하고 실제 DOM에서 실제 변경 사항 만 업데이트됩니다. 이 프로세스는 성능을 향상시킵니다.
Angular의 모듈 식 아키텍처는 어떻게 개발자에게 도움이됩니까?
Angular의 모듈 식 아키텍처는 특정 기능을 담당하는 각 모듈로 코드를 모듈로 구성합니다. 이러한 우려 사항을 분리하면 코드를 더 쉽게 유지 관리하고 테스트 할 수 있습니다. 또한 코드의 재사용 성과 확장 성을 촉진합니다.
React and Vue에서 구성 요소 기반 아키텍처의 중요성은 무엇입니까?
구성 요소 기반 아키텍처는 UI를 독립적 인 재사용 가능한 구성 요소로 분류합니다. 각 구성 요소에는 고유 한 논리가 있으며 UI의 일부를 제어합니다. 이 접근법은 코드의 재사용 성, 유지 관리 및 테스트 가능성을 촉진합니다.
커뮤니티 지원은 프론트 엔드 프레임 워크 선택에 어떤 영향을 미칩니 까?
및 활발한 커뮤니티는 귀중한 자원, 튜토리얼을 제공하며 문제가 발생할 때 도움을받을 수 있습니다. 또한 프레임의 인기와 서비스 수명을 보여줍니다. Angular, React 및 Vue는 모두 강력한 커뮤니티 지원을받습니다.
성능은 프론트 엔드 개발에서 사용자 경험에 어떤 영향을 미칩니 까?
성능은 응용 프로그램 속도에 직접 영향을 미칩니다. 응용 프로그램이 느리면 사용자를 좌절시키고 이탈률이 높아질 수 있습니다. 따라서 고성능 프레임 워크를 선택하면 사용자 경험이 향상 될 수 있습니다.