2

우리 웹 사이트에서 사용하는 JavaScript 코드베이스는 꽤 잘 구조화되어 있습니다 (관심있는 사람은 here).데이터 바인딩 외, backbone.js (또는 knockout.js)가 제공하는 이점

backbone.js (또는 일부 기능의 경우 knockout.js)를 코드에 통합하는 방법을 살펴 보았습니다.하지만 더 가까운 고려 사항을 통해 데이터 바인딩에 대해서는별로 신경 쓰지 않습니다. 서버 데이터 교환, 서버 -> 클라이언트 -> js 데이터 파이프쪽으로 편향되어 있기 때문에) 동적 데이터 바인딩 및 동기화가 없는지 상관하지 않습니다.

필자는 이러한 라이브러리에 익숙하지 않았기 때문에 해당 라이브러리를 사용하지 않기로 결정했기 때문에 다른 유용한 기능이 누락되었습니다. 내가?

+0

녹아웃과 백본은 전혀 유사하지 않습니다. 다양한 패턴의 적절한 분석을 위해이 비디오를 확인하십시오. http://addyosmani.com/scalable-javascript-videos/ –

+0

사실, 두 가지 사이의 차이점이 지나치게 줄어든 것 같습니다. – Goro

답변

4

개인적으로 전체 페이지 구성 웹 페이지를 구축하고 있다면 백본을 사용할 것입니다. 귀하의 웹 사이트가 주로 HTML지만 일부 사소한 추가 기능에 JS를 사용한다면 걱정하지 않아도됩니다. 백본은 클라이언트 측 데이터 모델을 처리하고 업데이트를 볼 수있는 변경 사항을 묶는 데 적합합니다.

저는 개인적으로 knockout을 사용하여 HTML에서 데이터 바인딩에 의존한다는 사실을 알게되었습니다. 나에게 잘 맞는 것은 아니었다. 많은 로직이 HTML 뷰 레이어로 바로 들어가기 때문에 부분적으로 동적 인 웹 사이트를 구축하는 것이 조금 더 친숙 할 수 있습니다. 최근 Podcast 인터뷰에서 녹아웃의 제작자가 경청하는 것이 좋을지도 모릅니다. http://javascriptjabber.com/

필자의 경우 동적 인 요소가 많은 커다란 웹 사이트를 구축 할 때 일부 글로벌 jQuery 플러그인 및 특정 JS 페이지의 패턴을 고수했습니다. 특정 페이지에 간단한 추가만으로 충분합니다. 이 질문은 매우 특별한 경우

나는 그래서 여기에 일반적인 대답 : 내가 먼저 선언적 데이터 바인딩이 KnockoutJS의 핵심 기능이지만,이 아니라는 것을 지적하고 싶습니다

1

이야, 모르는 핵심 - 백본 프레임 워크의 일부 백본 JS에서 이러한 기능을 제공하는 (Rivets.jsOrchestrator)과 같은 여러 플러그인이 있습니다.

이제 데이터 바인딩 이외의 이점 측면에서 KnockoutJS는 많이 제공하지 않습니다. 그러나 대화 형 데이터 바인딩이 주된 관심사가 아니더라도 BackboneJS 사용을 반드시 고려해야합니다. 그 이유는 Backbone이 클라이언트 측 라우팅 시스템과 자바 스크립트에서 서버로부터 얻은 데이터를 관리하기위한 간결하면서도 최소한의 접근 방식을 번들로 제공하기 때문입니다.

응용 프로그램이 데이터 기반이라고 언급 했으므로 클라이언트에서 가져온 데이터는 한꺼번에 가져 오지 않고 점진적으로 업데이트됩니다. 이 시나리오에서 관찰 가능한 모델 및 컬렉션을 사용하면 인앱 데이터 종속성을 효율적으로 관리 할 수있을뿐만 아니라 데이터를 동기화하여 시각화 할 수 있습니다.