10 예제와 함께 알아야 할 RXJS 기능
이 기사는 Florian Rappl과 Moritz Kröger가 검토했습니다. Sitepoint의 콘텐츠를 완벽하게 만들어 주신 Sitepoint의 모든 동료 검토 자에게 감사드립니다!
키 포인트
rxjs는 시간이 지남에 따라 채워진 배열과 유사한 관측 가능한 객체를 활용하여 기능적 반응성 프로그래밍 (FRP)을 용이하게하여 응용 프로그램에서 더 선언적이고 강력한 오류 처리가 가능합니다.
RXJ에서 간단한 스트림의 핵심 조작, 예 : , , 및 , 미러 배열 작업은 시간이 지남에 따라 값을 방출하는 숫자 스트림에 적용됩니다.
및
와 같은 특수 함수는 복잡한 데이터 구조를 처리하고 여러 스트림을 개별적으로 관리하는 데 중요하므로 고급 응답 프로그래밍 작업에 중요합니다.- 와 같은 연산자는 여러 스트림을 효과적으로 결합하는 데 사용될 수 있으며, 각 스트림은 스트림 관리 및 데이터 동기화에서 다른 역할을합니다.
- 기능은 구독 취소 외부 조건에 기초한 메커니즘을 제공하며, 이는 흐름 제어 및 자원 관리에서 RXJ의 유연성을 보여줍니다.
map()
filter()
반응성 프로그래밍 반응성 프로그래밍은 관측 가능한 객체라는 데이터 스트림을 기본 프로그래밍 장치로 취하는 프로그래밍 패러다임입니다. reduce()
스트림 - 또는 RXJS 전문 용어의 관찰 가능한 객체 - 같은 이벤트 청취자 : 무언가가 일어날 때까지 기다렸다가 발생할 때 알려줍니다. OnClick 리스너로부터 얻은 일련의 비동기 알림은 데이터 흐름의 완벽한 예입니다. take()
다시 말해서, 관찰 가능한 물체는 시간이 지남에 따라 채워진 배열에 지나지 않습니다.
이 배열의 요소는 파일 시스템, DOM 이벤트, API 호출 및 배열과 같은 변환 된 동기 데이터와 같은 거의 모든 곳에서 나올 수 있습니다. 기본적으로 반응성 프로그래밍은 관찰 가능한 객체를 프로그램의 빌딩 블록으로 사용하는 것 이상입니다. -
배열 flatMap()와의 관계
배열은 명시 적으로 변경되지 않는 한 콘텐츠가 최종적이기 때문에 간단합니다. 이런 의미에서 배열에는 필수 시간이 없습니다. switch()
반면에관찰 가능한 물체는 시간별로 정의됩니다. 최대 당신은 스트림이 지금까지 받았다는 것을 알 수 있습니다 [1, 2, 3]. 당신은 당신이 당신이 4를 얻을 것인지 확신 할 수 없습니다. rxjs 일반적인 할 일 앱을 고려하십시오. rxjs를 사용하여 사용자의 미완성 된 작업의 이름을 표시하는 방법에 대한 질문을 보자. 지금까지 이것은 배열 확장 일 뿐이지 만 반응 형 프로그래밍의 기능적 스타일을 보여줍니다. 선언적 특성은 "실제 세계"기능을 더 복잡하게함으로써 명확 해집니다. 우리가 원한다고 가정 해 봅시다 : 완료된 또는 미완성 작업을 볼 수있는 사용자의 선택에 따라 요청을 시작합니다 사용자가 선택을 신속하게 변경할 때 대역폭을 피하기 위해 마지막 선택에 한 번만 보냅니다 최대 3 개의 실패한 요청을 다시 시도하고 서버가 마지막 시간과 다른 응답을 보내는 경우에만 뷰를 다시 반환합니다. const task_stream = // 创建所有数据库中任务的流 getTasks(). // 只获取此用户的任务 filter((task) => task.user_id == user_id). // 获取未完成的任务 filter((task) => !task.completed). // 只获取任务名称 map((task) => task.name) /* 任务如下所示: task = { user_id : number, completed : boolean, name : string } */
로그인 후 복사로그인 후 복사로그인 후 복사계산 분해 : <🎜 🎜> parameter_stream은 사용자가 완성 된 작업 또는 미완성 작업을 원하고 매개 변수에 선택을 저장하는지 알려줍니다 <)> debounce () 초당 마지막 버튼에만 초점을 맞추십시오 GetTasks () 주변의 부분은 이전과 동일합니다 ConstruntilChanged ()는 마지막 시간과 다르게 서버의 응답을 따릅니다 update ()는 서버에서 얻은 내용을 반영하기 위해 UI를 업데이트 할 책임이 있습니다. -
키는 rxjs를 사용한 프로그래밍이 다음과 같습니다 - <<> 간단한 흐름 작동
- <<<> map () <🎜 🎜> <))> 필터 () <🎜 🎜> <<> 감소 () <🎜 🎜> < / /> take () / take while () <🎜 🎜> <(> take ()와 take ()을 제외하고, 이들은 JavaScript의 고차 배열 함수와 유사합니다.
콜백 기반 스타일의 명령 적으로 변발, 재 시도 및 "뚜렷한"논리가 효과적이지만 깨지기 쉽고 복잡합니다. 선언 프로그램; <;> 확장 가능한 시스템; 간단하고 직접적이고 강력한 오류 처리. rxjs의 상위 10 개 필수 알고 기능을 탐색하는 과정에서 위의 예에서 각 함수를 만나게됩니다. 간단한 스트림의 기본 함수 (문자열과 같은 간단한 값을 방출하는 스트림)에는 다음이 포함됩니다. 우리는 예제 문제를 해결하여 이러한 기능을 적용합니다. .com 또는 .org 웹 사이트를 사용하여 데이터베이스의 모든 사용자를 찾고 웹 사이트 이름의 평균 길이를 계산합니다. JSONPLASEHOLDER는 사용자의 원천 역할을 할 것입니다. 이것은 우리가 사용할 사용자 데이터의 JSON 표현입니다.const task_stream = parameter_stream. debounce(1000). map((parameter) => { getTasks(). retry(3). filter((task) => task.user_id === user_id). filter((task) => task.completed === parameter). map((task) => task.name) }). flatMap(Rx.Observable.from). distinctUntilChanged(). update()
로그인 후 복사로그인 후 복사로그인 후 복사< > 1. 데이터를 변환하기 위해 map ()를 사용하십시오 Observable Objects에서 map ()를 사용하는 것은 배열에서 사용하는 것과 동일합니다. It : <..>
콜백을 매개 변수로 받아들입니다 호출하는 배열의 각 요소에서 실행하십시오 원래 배열의 각 요소가 콜백으로 생성 된 결과로 대체되는 새 배열을 반환합니다. -
관찰 가능한 객체에서 map ()를 사용할 때의 유일한 차이점은 다음과 같습니다.
새로운 배열이 아닌 새로운 관찰 가능한 객체를 반환합니다
관찰 가능한 객체가 즉시 새로운 프로젝트가 아닌 새로운 프로젝트를 발행 할 때 실행됩니다. -
위 내용은 10 예제와 함께 알아야 할 RXJS 기능의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

JavaScript는 현대 웹 개발의 초석이며 주요 기능에는 이벤트 중심 프로그래밍, 동적 컨텐츠 생성 및 비동기 프로그래밍이 포함됩니다. 1) 이벤트 중심 프로그래밍을 사용하면 사용자 작업에 따라 웹 페이지가 동적으로 변경 될 수 있습니다. 2) 동적 컨텐츠 생성을 사용하면 조건에 따라 페이지 컨텐츠를 조정할 수 있습니다. 3) 비동기 프로그래밍은 사용자 인터페이스가 차단되지 않도록합니다. JavaScript는 웹 상호 작용, 단일 페이지 응용 프로그램 및 서버 측 개발에 널리 사용되며 사용자 경험 및 크로스 플랫폼 개발의 유연성을 크게 향상시킵니다.

JavaScript의 최신 트렌드에는 Typescript의 Rise, 현대 프레임 워크 및 라이브러리의 인기 및 WebAssembly의 적용이 포함됩니다. 향후 전망은보다 강력한 유형 시스템, 서버 측 JavaScript 개발, 인공 지능 및 기계 학습의 확장, IoT 및 Edge 컴퓨팅의 잠재력을 포함합니다.

각각의 엔진의 구현 원리 및 최적화 전략이 다르기 때문에 JavaScript 엔진은 JavaScript 코드를 구문 분석하고 실행할 때 다른 영향을 미칩니다. 1. 어휘 분석 : 소스 코드를 어휘 단위로 변환합니다. 2. 문법 분석 : 추상 구문 트리를 생성합니다. 3. 최적화 및 컴파일 : JIT 컴파일러를 통해 기계 코드를 생성합니다. 4. 실행 : 기계 코드를 실행하십시오. V8 엔진은 즉각적인 컴파일 및 숨겨진 클래스를 통해 최적화하여 Spidermonkey는 유형 추론 시스템을 사용하여 동일한 코드에서 성능이 다른 성능을 제공합니다.

JavaScript는 현대 웹 개발의 핵심 언어이며 다양성과 유연성에 널리 사용됩니다. 1) 프론트 엔드 개발 : DOM 운영 및 최신 프레임 워크 (예 : React, Vue.js, Angular)를 통해 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축합니다. 2) 서버 측 개발 : Node.js는 비 차단 I/O 모델을 사용하여 높은 동시성 및 실시간 응용 프로그램을 처리합니다. 3) 모바일 및 데스크탑 애플리케이션 개발 : 크로스 플랫폼 개발은 개발 효율을 향상시키기 위해 반응 및 전자를 통해 실현됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.

이 기사에서는 Contrim에 의해 확보 된 백엔드와의 프론트 엔드 통합을 보여 주며 Next.js를 사용하여 기능적인 Edtech SaaS 응용 프로그램을 구축합니다. Frontend는 UI 가시성을 제어하기 위해 사용자 권한을 가져오고 API가 역할 기반을 준수하도록합니다.

C/C에서 JavaScript로 전환하려면 동적 타이핑, 쓰레기 수집 및 비동기 프로그래밍으로 적응해야합니다. 1) C/C는 수동 메모리 관리가 필요한 정적으로 입력 한 언어이며 JavaScript는 동적으로 입력하고 쓰레기 수집이 자동으로 처리됩니다. 2) C/C를 기계 코드로 컴파일 해야하는 반면 JavaScript는 해석 된 언어입니다. 3) JavaScript는 폐쇄, 프로토 타입 체인 및 약속과 같은 개념을 소개하여 유연성과 비동기 프로그래밍 기능을 향상시킵니다.

일상적인 기술 도구를 사용하여 기능적 다중 테넌트 SaaS 응용 프로그램 (Edtech 앱)을 구축했으며 동일한 작업을 수행 할 수 있습니다. 먼저, 다중 테넌트 SaaS 응용 프로그램은 무엇입니까? 멀티 테넌트 SAAS 응용 프로그램은 노래에서 여러 고객에게 서비스를 제공 할 수 있습니다.
