찾다
웹 프론트엔드JS 튜토리얼Javascript 프런트엔드 UI 프레임워크 키트 사용 가이드 - kitjs 대화 상자

Kit은 UI 라이브러리입니다. 모든 사람이 내 Kit의 핵심을 배우고 내 API를 외우도록 하는 것은 아닙니다. 요즘에는 jQuery가 인기가 있고 모두가 배우고 있습니다. jQ, SeaJ는 내일 인기를 끌 것이고 모두가 SeaJ에 대해 추측할 것이므로 jQ 사용자를 위해 특별히 KitJ의 구문 설탕(Suger.js)을 준비했습니다. 이는 구현 외에도 인터페이스도 있습니다. 모두에게 편리합니다. 키트의 구성 요소를 직접 사용하여 변형할 수 있습니다. 물론 순수한 기술 팬으로서 기술을 교리로 사용하는 것보다 기술이 어떻게 구현되는지 깊이 이해하는 것이 훨씬 더 흥미롭습니다^_^. 물론 상사의 프로젝트 보너스를 이용하여 KPI 고려 사항 중 Kit의 컴포넌트 코드를 표절하거나 KPI를 완성하는 경우에는 물을 마시고 우물 파는 사람을 잊지 않는 한 그러한 행위는 괜찮습니다. , 동료들과 즐거운 시간을 보낼 때 KitJ를 홍보해 주시면 정말 감사하겠습니다. 동시에 Kit는 지속적인 개발로 인해 일부 버그와 브라우저 호환성 문제가 있는 매우 어린 라이브러리입니다. 그는 게이 친구들과 함께 성장하고 함께 발전할 것입니다.

동시에 오늘 kitjs 대화 구성 요소가 출시되었습니다. 데모 주소는 http://xueduany.github.com/KitJs/KitJs/demo/Dialog/demo.html

(1) 키트 디렉토리 형식

주제로 돌아가서 KitJs에서는 kit.js가 핵심 Core 파일로 존재합니다. 여기에는 가장 일반적으로 사용되는 Dom 및 Object가 포함되어 있으며 상속된 작업 및 문자열 배치가 기능 구분에 따라 확장됩니다. 동일한 수준의 디렉토리.js, math.js 등은 모두 특정 방향으로 기능을 확장하도록 설계되었습니다. 각 독립 js 파일에는 클래스 생성자와 전역 객체의 인스턴스

가 포함되어 있습니다.

kit.js를 예로 들면 $Kit 클래스와 $Kit 클래스의 $kit 인스턴스가 포함됩니다(일반적으로 사용되는 변수와의 충돌을 피하기 위해 $로 시작).

$Kit.Math 클래스와 $kit.math 인스턴스를 포함하는 math.js와 같은 다른 유형은 링크 형태로 $Kit 및 $kit 인스턴스에 걸려 있으므로 전역 범위에만 있습니다. 두 가지 오염, $Kit 및 $kit. 동시에, kit.js에는 $kit.ui라는 네임스페이스를 정의했습니다. 물리적 디렉터리에는 kit.js와 동일한 수준의 Widget 디렉터리가 있으며, 첫 글자가 대문자

위젯 디렉토리 아래의 모든 디렉토리는 kitjs 구성 요소 디렉토리입니다. 각 독립 js 파일에는 독립 구성 요소의 클래스 생성자(비인스턴스)만 포함되어 있습니다. 또한 commonJs의 모듈 모드와도 호환됩니다(모듈/ CommonJs 1.1 스펙과 AMD 방식 변환, 구체적인 변환 방식은 추후 자세히 언급하겠습니다.)

(2) 키트 구성요소 기본 코드 템플릿, 주석은 jsdoc 사양을 준수합니다.

Dialog 컴포넌트를 예로 들어보겠습니다. 각 컴포넌트는 다음과 같습니다.

첫 번째는 jsdoc 주석입니다. @class는 클래스가 무엇인지 선언하고, @require xxx.js는 의존하는 구성 요소를 선언합니다.

(3) 생성자 및 초기화 방법

각 클래스는 표준 function(config){} 방식으로 생성자를 정의합니다. 각 kitjs 구성 요소의 생성자는 기본적으로 개인화된 구성을 위한 입력으로 config 매개변수를 예약한다는 점에 유의해야 합니다.

동시에 클래스 생성자에는 kitjs 구성 요소의 기본 구성을 저장하는 데 사용되는 정적 멤버인 defaultConfig 객체가 있습니다

kitjs 구성 요소를 사용하는 경우 먼저 새로운 인스턴스 메서드인 new $kit.ui.Dialog.YesOrNo를 통해 새 인스턴스 개체를 초기화해야 하며 이는 단지 js 구성 요소 개체를 초기화하는 것이므로 HTML이 필요하지 않습니다. init 메소드를 실행하고 HTML을 생성하여 문서에 추가하는 것은 영혼에 살과 피를 붓는 것과 같습니다^_^.

초기화 메소드를 생성자에 직접 넣지 않고 별도로 넣는 것이 어떻냐고 묻는 학생들도 있습니다.

1은 상속 중에 상위 클래스를 인스턴스화해야 하기 때문입니다. 하위 클래스가 상위 클래스에서 상속되면 하위 클래스의 프로토타입 객체가 생성자에 배치되는 경우 상위 클래스의 새 인스턴스로 설정됩니다. init의 초기화 방법으로 인해 상위 클래스의 HTML이 직접 실행되어 가비지 코드가 생성됩니다.

2는 지연 로딩을 고려하여 HTML 코드를 초기화 직후가 아닌 적절한 시점에 실행해야 하기 때문입니다

kitjs 구성요소를 사용하는 기본 방법은

인스턴스화 후 init 메서드를 실행합니다. (init 메서드는 반환 코드 7과 함께 현재 구성 요소 개체를 반환합니다.)

위 그림에서 볼 수 있듯이 대화 상자의 모든 API 메서드는 프로토타입에 걸려 있고 상속되어 프로토타입 확장을 통해 인스턴스 객체에 전달됩니다.

$kit.ui.Dialog.YesOrNo 구성 요소의 생성자 코드를 살펴보세요.

(4) KitJ의 상속

$kit.inherit 메소드를 통해 $kit.ui.Dialog 객체와의 상속 관계를 선언합니다. 여기 어떤 학생들은 왜 외부에 직접 작성하지 않고 생성자에서 상속해야 합니까?

이유는

1.kitjs는 프로토타입 기반의 상속 관계 유지 관리입니다.

2. Kitjs 구성 요소를 사용하려면 구성 요소 개체를 인스턴스화해야 합니다. 각 구성 요소는 새 인스턴스를 통해 생성자를 통해 생성됩니다.

그래서 코드 생성자에 상속 관계 실행을 넣어서 새 구성 요소가 인스턴스화되면 현재 구성 요소 멤버의 생성자를 따라 상위 클래스의 상속 메서드를 단계별로 상속하게 됩니다. 및 방법.

하위 클래스가 상위 클래스의 메서드를 수정해야 하는 경우 상위 클래스의 상속된 메서드를 재정의하려면 하위 클래스의 프로토타입에 동일한 이름의 메서드를 정의하기만 하면 됩니다.

네이밍 측면에서 보면, 하위 클래스는 $kit.ui.Dialog, $kit.ui.Dialog 위의 그림과 같이 상위 클래스의 클래스 이름을 Namespace로 이어가며 체인을 이어갑니다. 예아니요

kitjs의 상속 구현도 매우 간단합니다

상위 클래스 객체를 인스턴스화하고 상위 클래스 인스턴스의 모든 멤버를 하위 클래스의 프로토타입에 복사한 다음 하위 클래스의 프로토타입 생성자를 하위 클래스 생성자로 재설정한 다음 하위 클래스 생성자에 링크를 연결하여 가리키는 $kit.ui.Dialog.YesOrNo 하위 클래스의 인스턴스화 프로세스 중에 $kit.inherit 메서드를 통해 상위 클래스에 $kit.ui.Dialog 하위 클래스의 존재하지 않는 모든 멤버를 상속할 수 있습니다. , 정적 언어와 유사한 상속 구현

(5) 구성 매개변수 , HTML과 CSS의 디스어셈블리/스키닝 결합?

키트의 구성 요소 생성자는 구성 요소를 개인화하기 위해 맵 유형 매개 변수를 전달하는 데 사용됩니다. 키트 구성 요소가 초기화되면 사용자가 제출한 구성 매개 변수로 기본 defaultConfig를 자동으로 덮어쓰고 초기화를 시작합니다.

어떤 구성 요소든 HTML 구조와 CSS 스타일의 변경은 불가피합니다

키트는 config의 매개변수 구성에서 이 결합을 분해합니다.

첫 번째는 HTML 템플릿 기술을 사용하는 것입니다. Kit에서는 $kit.newHTML 메서드를 사용하여 HTML 문자열을 직접 근절하고 HTML DOM을 생성하여 문서 스트림에 삽입하는 방법을 옹호합니다.

따라서 구성 요소의 대략적인 HTML 콘텐츠를 추출하여 HTML 문자열 템플릿으로 캡슐화하고 이를 구성 요소의 defaultConfig에 저장합니다. 사용자가 HTML 템플릿을 수정해야 하는 경우 사용자 정의 구성을 사용할 수 있습니다. 초기화하는 동안 기본 defaultConfig 필드

의 템플릿을 덮어씁니다.

HTML 템플릿과 CSS의 결합 분해에서 Kit는 js 템플릿을 사용하여 className을 분해하는 트릭을 사용합니다.

config의 html을 init 메소드의 $kit.tpl을 통해 config의 xxx에 해당하는 ${xxx}로 바꿉니다.

동시에 모든 스타일은 CSS에서 설정됩니다.

전환해야 할 스킨 세트가 여러 개 있는 경우, 초기화 중 config를 통해 ${cls}에 해당하는 실제 className을 지정하여 템플릿의 className을 수정하도록 선택하여 스킨 변경 효과를 얻을 수 있습니다.

(6) 요약

기본적으로 $kit.ui.Dialog.YesOrNo 컴포넌트의 코드 분석을 통해 kitjs의 컴포넌트 구현 구조에 대한 전반적인 이해를 갖게 되었습니다. 실제로 페이지 구성 요소를 디자인하는 것은 어렵지 않지만 다양한 요구 사항에 적응할 수 있고 다양한 상황에서 빠르게 변형될 수 있으며 개발에 적응할 수 있는 구성 요소를 디자인하는 것은 어려운 요구 사항입니다. Kit는 HTML 템플릿과 Css를 분리하고 사용자 정의 구성 매개변수 및 defaultConfig와 협력합니다. 하위 클래스는 상속을 통해 상위 클래스의 속성과 메서드를 가져오는 동시에 다양한 비즈니스 요구에 따라 관련 코드를 재구성할 수 있습니다. 다양한 수준과 다양한 환경에서 비즈니스 UI 구성 요소의 요구 사항을 충족합니다.

KitJs에는 기본 라이브러리와 UI 라이브러리가 포함되어 있습니다.

기본 라이브러리: 선택기 기능, DOM 연산 기능, 애니메이션 기능, 향상된 DOM 이벤트, 해시트리 데이터 구조 추가, io 기능, 로컬 저장 기능, 멀티스레딩, 범위 등
jquery 작업 형식을 시뮬레이션하는 suger.js
도 있습니다. UI 라이브러리에는 향상된 양식 요소, 팝업 레이어, 미디어 플레이어, 유효성 검사 프레임워크, 폭포 흐름, 연결, 슬라이드쇼, 달력, 업로드 구성 요소, 템플릿 엔진 등이 포함됩니다.

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
VUE3开发基础:使用extends继承组件VUE3开发基础:使用extends继承组件Jun 16, 2023 am 08:58 AM

Vue是目前最流行的前端框架之一,而VUE3则是Vue框架的最新版本,相较于VUE2,VUE3具备了更高的性能和更出色的开发体验,成为了众多开发者的首选。在VUE3中,使用extends继承组件是一个非常实用的开发方式,本文将为大家介绍如何使用extends继承组件。extends是什么?在Vue中,extends是一个非常实用的属性,它可以用于子组件继承父

如何使用 Vue 实现日历组件?如何使用 Vue 实现日历组件?Jun 25, 2023 pm 01:28 PM

Vue是一款非常流行的前端框架,它提供了很多工具和功能,如组件化、数据绑定、事件处理等,能够帮助开发者构建出高效、灵活和易维护的Web应用程序。在这篇文章中,我来介绍如何使用Vue实现一个日历组件。1、需求分析首先,我们需要分析一下这个日历组件的需求。一个基本的日历应该具备以下功能:展示当前月份的日历页面;支持切换到前一月或下一月;支持点击某一天,

聊聊Vue怎么通过JSX动态渲染组件聊聊Vue怎么通过JSX动态渲染组件Dec 05, 2022 pm 06:52 PM

Vue怎么通过JSX动态渲染组件?下面本篇文章给大家介绍一下Vue高效通过JSX动态渲染组件的方法,希望对大家有所帮助!

VSCode插件分享:一个实时预览Vue/React组件的插件VSCode插件分享:一个实时预览Vue/React组件的插件Mar 17, 2022 pm 08:07 PM

在VSCode中开发Vue/React组件时,怎么实时预览组件?本篇文章就给大家分享一个VSCode 中实时预览Vue/React组件的插件,希望对大家有所帮助!

VUE3开发入门教程:使用组件实现分页VUE3开发入门教程:使用组件实现分页Jun 16, 2023 am 08:48 AM

VUE3开发入门教程:使用组件实现分页分页是一个常见的需求,因为在实际开发中,我们往往需要将大量的数据分成若干页以展示给用户。在VUE3开发中,可以通过使用组件实现分页功能,本文将介绍如何使用组件实现简单的分页功能。1.创建组件首先,我们需要创建一个分页组件,使用“vuecreate”命令创建VUE项目,并在src/components目录下创建Pagin

如何使用 Vue 实现仿照片墙组件?如何使用 Vue 实现仿照片墙组件?Jun 25, 2023 am 08:19 AM

在现代Web开发中,组件化是一个极受欢迎的开发模式。而Vue.js则是一个非常适合组件化的前端框架。在这篇文章中,我们将介绍如何使用Vue.js创建一个仿照片墙组件。在开始之前,我们需要明确一些准备工作。首先,我们需要安装Vue.js。安装的方法非常简单,只需在终端中输入以下命令:npminstallvue安装完成后,我们可以创建一个名为

VUE3初学者入门:使用Vue.js组件组合实现可复用组合VUE3初学者入门:使用Vue.js组件组合实现可复用组合Jun 15, 2023 pm 08:53 PM

Vue.js是一款流行的前端JavaScript框架,它提供了一种简单易用的方式来构建动态网页应用程序。Vue.js的主要特点是其模块化的设计和可插拔的组件系统。这使得开发者可以轻松地创建可复用的组件,从而提高了应用程序的重用性和可维护性。在本文中,我们将重点介绍VUE3初学者如何使用Vue.js组件组合实现可复用组合。Vue.js组件是一个完整的封装元素,

常用 Vue UI 组件的使用技巧常用 Vue UI 组件的使用技巧Jun 25, 2023 am 08:31 AM

在现代Web开发中,UI组件是不可或缺的一部分。Vue.js框架中有许多优秀的UI组件库,如Element-UI、Vuetify、AntDesignVue等。这些组件库提供了许多易于使用的组件,可以帮助我们更加高效地创建Web应用程序。本文将介绍一些常用的VueUI组件,以及使用这些组件的技巧和实用技能。一、El-TableEl-Table是Eleme

See all articles

핫 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 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경