웹 프론트엔드 JS 튜토리얼 JavaScript 프레임워크(xmlplus) 구성 요소 소개(7) 라우팅(ViewStack)

JavaScript 프레임워크(xmlplus) 구성 요소 소개(7) 라우팅(ViewStack)

May 05, 2017 am 10:43 AM
구성 요소 라우팅

xmlplus는 프론트엔드 및 백엔드 프로젝트의 신속한 개발을 위한 JavaScript프레임워크입니다. 이 글은 xmlplus 컴포넌트 디자인 시리즈의 라우팅을 주로 소개하는데, 관심 있는 친구들은

을 참고하면 된다. 다양한 URL을 기반으로 한 페이지 전환. 서버 측에서는 다양한 URL 요청을 기반으로 관련 페이지가 피드백됩니다. 이 장에서는 넓은 의미에서 구성 요소 라우팅을 정의합니다. 수신된 다양한 명령에 따라 구성 요소 개체 는 서로 다른 하위 페이지를 표시합니다. 여기에서는 라우팅과 관련된 구성 요소, 즉 뷰 스택 ViewStack을 소개합니다.

Preliminary View Stack

이 구성 요소는 "문서화" 섹션의 마지막 장인 "지연된 인스턴스화"에 이미 나타났습니다. 여기에는 몇 가지 세부 사항이 설명되어 있습니다. 이 구성 요소의 소스 코드는 아래에 다시 제공됩니다.

ViewStack: { 
 xml: "<p id=&#39;viewstack&#39;/>",
 fun: function (sys, items, opts) {
  var args, children = this.children(),
   table = children.call("hide").hash(),
   ptr = table[opts.index] || children[0];
  if (ptr) ptr = ptr.trigger("show").show();
  this.on("switch", function ( e, to ) {
   table = this.children().hash();
   if ( !table[to] || table[to] == ptr ) return;
   e.stopPropagation();
   args = [].slice.call(arguments).slice(2);
   ptr.trigger("hide", [to+&#39;&#39;].concat(args)).hide();
   ptr = table[to].trigger("show", [ptr+&#39;&#39;].concat(args)).show();
  });
  return Object.defineProperty({}, "selected", { get: function() {return ptr;}});
 }
}
로그인 후 복사

static인터페이스에서 이 구성 요소는 정적 매개 변수 인덱스를 제공할 수 있습니다. 이 매개 변수는 ViewStack 구성 요소의 하위 구성 요소 개체 이름입니다. 어떤 하위 구성 요소가 먼저 렌더링되는지 나타내는 데 사용됩니다. 아래 예를 참조하세요.

Example1: {
 xml: `<ViewStack index=&#39;bar&#39;>
    <button id=&#39;foo&#39;>foo</button>
    <button id=&#39;bar&#39;>bar</button>
   </ViewStack>`
}
로그인 후 복사

이 예에서 ViewStack에는 값이 bar인 속성 인덱스가 포함되어 있으며, 이는 구성 요소가 인스턴스화될 때 구성 요소 개체 bar가 먼저 렌더링됨을 나타냅니다. 기본적으로 이 구성 요소의 첫 번째 하위 구성 요소는 초기 표시 객체로 사용됩니다. 동적 인터페이스를 보면 구성 요소의 함수 항목은 selected라는 읽기 전용 속성을 내보냅니다. 이 속성은 현재 표시된 하위 구성 요소 개체를 나타내는 데 사용됩니다.

이벤트를 통해 대상 컴포넌트 객체 전환

자식 컴포넌트 객체 간 전환을 위해 해당 컴포넌트의 기능 항목은 해당 인터페이스를 내보내지 않지만 전환 스위치 이벤트를 수신하면 완료됩니다. 아래 예를 참조하세요.

Example2: {
 xml: "<ViewStack id=&#39;viewstack&#39;>\
    <button id=&#39;foo&#39;>foo</button>\
    <button id=&#39;bar&#39;>bar</button>\
   </ViewStack>"
 fun: function (sys, items, opts) {
  sys.viewstack.on("click", "*", function(e) {
   var to = this + &#39;&#39; == "foo" ? "bar" : "foo",
    data = "hello, world";
   this.trigger("switch", [to, data]);
  });
  sys.foo.on("show", function (e, prev, data) {
   console.log("previous page is " + prev, "from data is " + data);
  });
  sys.bar.on("hide", function (e, prev, data) {
   console.log("previous page is " + prev, "from data is " + data);
  });
 }
}
로그인 후 복사

이 예에서 사용자가 텍스트를 클릭하면 텍스트가 foo와 bar 사이에서 전환됩니다. 즉, 두 페이지 간 전환은 해당 하위 항목을 통해 전환 이벤트를 전달하여 수행됩니다. 물체. 또한 페이지를 전환할 때 ViewStack 구성 요소는 이번에 표시된 페이지에 이벤트 표시를 전달하고, 이번에 숨겨진 페이지에 이벤트 숨기기를 필요에 따라 해당 페이지에서 수신할지 여부를 선택할 수 있습니다. 그리고 듣기 기능에서는 이전에 표시된 페이지의 ID와 전송된 관련 데이터를 얻을 수 있습니다.

하위 개체를 동적으로 추가 및 제거

ViewStack 구성 요소는 하위 구성 요소 개체를 동적으로 추가 및 제거하는 것을 지원합니다. 아래 예를 참조하세요.

Example3: {
 xml: "<ViewStack id=&#39;viewstack&#39;>\
    <button id=&#39;foo&#39;>foo</button>\
   </ViewStack>"
 fun: function (sys, items, opts) {
  var xml = "<button id=&#39;bar&#39;>bar</button>";
  sys.viewstack.append(xml).trigger("switch", "bar");
 }
}
로그인 후 복사

이 예에서는 하위 구성 요소가 함수 항목에 동적으로 추가되고, 스위치 이벤트를 전달하여 현재 표시된 보기가 새로 추가된 보기로 전환됩니다.

최적화된 구성

구성 요소 ViewStack은 일반적으로 구성 요소의 지연된 인스턴스화 기능과 함께 사용됩니다. 좀 더 복잡한 구성 요소의 경우 이는 애플리케이션의 초기 페이지 표시 속도를 높이는 데 도움이 될 수 있습니다. 다음은 간단한 데모입니다.

Example4: {
 xml: `<ViewStack>
    <button id=&#39;foo&#39;>foo</button>
    <button id=&#39;bar&#39;>bar</button>
    <button id=&#39;alice&#39;>alice</button>
   </ViewStack>`
 map: { defer: "bar alice" }
}
로그인 후 복사

이 예에서 ViewStack 하위에는 세 개의 하위 구성 요소가 포함되어 있으며, 그 중 구성 요소 개체인 bar와 alice는 지연된 인스턴스화를 요구하도록 설정되어 있으며 이러한 두 구성 요소 개체의 표시 기능이 호출될 때만 실제로 시작됩니다. . 인스턴스화합니다.

HTML5 기록과 함께 사용 API

여기서 ViewStack 구성요소를 작동시키는 방법을 살펴보겠습니다. HTML5 History API와 함께 사용됩니다. 아래는 간단한 예입니다.

Example5: {
 xml: `<ViewStack id=&#39;example&#39;>
    <button id=&#39;foo&#39;>foo</button>
    <button id=&#39;bar&#39;>bar</button>
    <button id=&#39;alice&#39;>alice</button>
   </ViewStack>`,
 fun: function (sys, items, opts) {
  sys.example.on("show", "button", function (e, prev) {
   window.history.pushState({name: this + ""}, null, "/" + this);
  });
  window.addEventListener("popstate", function(e) {
   sys.example.trigger("switch", e.state.name);
  });
 }
}
로그인 후 복사

이 예제의 핵심은 뷰 스택 구성 요소 개체의 하위 페이지가 변경되면 pushState 함수를 사용하여 이를 기록하고 브라우저의 popstate 이벤트를 수신해야 한다는 것입니다. .사용자가 "앞으로"를 클릭하면, "뒤로" 버튼을 누르면 해당 페이지로 전환이 완료됩니다. 이 기술은 단일 페이지 애플리케이션에서 새로 고침 없는 점프를 완료하는 데 매우 적합하며 사용자에게 매우 좋은 경험을 제공할 수 있습니다.

이 기사 시리즈는 xmlplus 프레임워크를 기반으로 합니다. xmlplus에 대해 잘 모르신다면 www.xmlplus.cn을 방문해 보세요. 자세한 시작 설명서는 여기에서 확인할 수 있습니다.

[관련 추천]

1. 무료 js 온라인 동영상 튜토리얼

JavaScript 중국어 참조 매뉴얼

3. php.cn Dugu Jiujian (3) - JavaScript 비디오 튜토리얼

위 내용은 JavaScript 프레임워크(xmlplus) 구성 요소 소개(7) 라우팅(ViewStack)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

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

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Windows 10 이전 버전 구성 요소 DirectPlay를 설치하는 방법 Windows 10 이전 버전 구성 요소 DirectPlay를 설치하는 방법 Dec 28, 2023 pm 03:43 PM

많은 사용자가 win10에서 일부 게임을 플레이할 때 화면이 멈추거나 화면이 흐려지는 등의 문제에 항상 직면합니다. 이때 다이렉트 플레이 기능을 켜면 문제를 해결할 수 있으며 기능 작동 방법도 매우 간단합니다. 이전 버전의 win10 컴포넌트 다이렉트플레이 설치 방법 1. 검색 상자에 "제어판"을 입력하고 엽니다. 2. 보기 방법으로 큰 아이콘을 선택합니다. 3. "프로그램 및 기능"을 찾습니다. 4. 활성화 또는 활성화하려면 왼쪽을 클릭합니다. Win 기능 끄기 5. 여기에서 이전 버전을 선택하세요. 확인란을 선택하세요.

Slim 프레임워크에서 API 라우팅을 구현하는 방법 Slim 프레임워크에서 API 라우팅을 구현하는 방법 Aug 02, 2023 pm 05:13 PM

Slim 프레임워크에서 API 라우팅을 구현하는 방법 Slim은 웹 애플리케이션을 구축하는 간단하고 유연한 방법을 제공하는 경량 PHP 마이크로 프레임워크입니다. 주요 기능 중 하나는 API 라우팅 구현으로, 이를 통해 다양한 요청을 해당 핸들러에 매핑할 수 있습니다. 이 기사에서는 Slim 프레임워크에서 API 라우팅을 구현하는 방법을 소개하고 몇 가지 코드 예제를 제공합니다. 먼저 Slim 프레임워크를 설치해야 합니다. 최신 버전의 Slim은 Composer를 통해 설치할 수 있습니다. 터미널을 열고

Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Angular 구성 요소 및 해당 표시 속성: 비블록 기본값 이해 Mar 15, 2024 pm 04:51 PM

Angular 프레임워크의 구성 요소에 대한 기본 표시 동작은 블록 수준 요소에 대한 것이 아닙니다. 이 디자인 선택은 구성 요소 스타일의 캡슐화를 촉진하고 개발자가 각 구성 요소가 표시되는 방법을 의식적으로 정의하도록 장려합니다. CSS 속성 표시를 명시적으로 설정하면 Angular 구성 요소의 표시를 완전히 제어하여 원하는 레이아웃과 응답성을 얻을 수 있습니다.

Java Apache Camel: 유연하고 효율적인 서비스 지향 아키텍처 구축 Java Apache Camel: 유연하고 효율적인 서비스 지향 아키텍처 구축 Feb 19, 2024 pm 04:12 PM

Apache Camel은 서로 다른 애플리케이션, 서비스 및 데이터 소스를 쉽게 통합하여 복잡한 비즈니스 프로세스를 자동화할 수 있는 ESB(Enterprise Service Bus) 기반 통합 프레임워크입니다. ApacheCamel은 경로 기반 구성을 사용하여 통합 프로세스를 쉽게 정의하고 관리합니다. ApacheCamel의 주요 기능은 다음과 같습니다. 유연성: ApacheCamel은 다양한 애플리케이션, 서비스 및 데이터 소스와 쉽게 통합될 수 있습니다. HTTP, JMS, SOAP, FTP 등을 포함한 여러 프로토콜을 지원합니다. 효율성: ApacheCamel은 매우 효율적이어서 많은 수의 메시지를 처리할 수 있습니다. 성능을 향상시키는 비동기 메시징 메커니즘을 사용합니다. 확장 가능

이전 버전의 win10 구성 요소 설정을 여는 방법 이전 버전의 win10 구성 요소 설정을 여는 방법 Dec 22, 2023 am 08:45 AM

Win10 이전 버전 구성요소는 일반적으로 기본적으로 닫혀 있으므로 사용자가 직접 설정해야 합니다. 먼저 작업은 아래 단계를 따르기만 하면 됩니다. 1. 시작을 클릭한 다음 "Win 시스템"을 클릭합니다. 2. 클릭하여 제어판으로 들어갑니다. 3. 그런 다음 아래 프로그램을 클릭합니다. 4. "Win 기능 활성화 또는 끄기"를 클릭합니다. 5. 여기에서 원하는 것을 선택할 수 있습니다. 열기 위해

Vue 컴포넌트 개발: 진행률 표시줄 컴포넌트 구현 방법 Vue 컴포넌트 개발: 진행률 표시줄 컴포넌트 구현 방법 Nov 24, 2023 am 08:56 AM

Vue 구성 요소 개발: 진행률 표시줄 구성 요소 구현 방법 머리말: 웹 개발에서 진행률 표시줄은 데이터 요청, 파일 업로드, 양식 제출과 같은 시나리오에서 작업 진행 상황을 표시하는 데 자주 사용되는 일반적인 UI 구성 요소입니다. Vue.js에서는 컴포넌트를 커스터마이즈하여 진행률 표시줄 컴포넌트를 쉽게 구현할 수 있습니다. 이 기사에서는 구현 방법을 소개하고 구체적인 코드 예제를 제공합니다. Vue.js 초보자에게 도움이 되길 바랍니다. 구성 요소 구조 및 스타일 먼저 진행률 표시줄 구성 요소의 기본 구조와 스타일을 정의해야 합니다.

Vue 프로젝트에서 라우팅을 사용하여 페이지 전환 애니메이션 효과를 사용자 정의하는 방법은 무엇입니까? Vue 프로젝트에서 라우팅을 사용하여 페이지 전환 애니메이션 효과를 사용자 정의하는 방법은 무엇입니까? Jul 21, 2023 pm 02:37 PM

Vue 프로젝트에서 라우팅을 사용하여 페이지 전환 애니메이션 효과를 사용자 정의하는 방법은 무엇입니까? 소개: Vue 프로젝트에서 라우팅은 자주 사용하는 기능 중 하나입니다. 페이지 간 전환은 라우팅을 통해 이루어지며 좋은 사용자 경험을 제공합니다. 페이지 전환을 더욱 생생하게 만들기 위해 애니메이션 효과를 사용자 정의하여 구현할 수 있습니다. 이 기사에서는 라우팅을 사용하여 Vue 프로젝트에서 페이지 전환 애니메이션 효과를 사용자 정의하는 방법을 소개합니다. Vue 프로젝트 만들기 먼저 Vue 프로젝트를 만들어야 합니다. VueCLI를 사용하여 빠르게 빌드할 수 있습니다.

Vue 구성요소 실습: 페이징 구성요소 개발 Vue 구성요소 실습: 페이징 구성요소 개발 Nov 24, 2023 am 08:56 AM

Vue 컴포넌트 실습: 페이징 컴포넌트 개발 소개 웹 애플리케이션에서 페이징 기능은 필수 컴포넌트입니다. 좋은 페이지 매김 구성 요소는 표현이 간단하고 명확해야 하며, 기능이 풍부하고, 통합 및 사용이 쉬워야 합니다. 이 기사에서는 Vue.js 프레임워크를 사용하여 고도로 사용자 정의 가능한 페이징 구성 요소를 개발하는 방법을 소개합니다. Vue 컴포넌트를 활용하여 개발하는 방법을 코드 예시를 통해 자세히 설명하겠습니다. 기술 스택 Vue.js2.xJavaScript(ES6) HTML5 및 CSS3 개발 환경

See all articles