vue에서 사용하는 디자인 패턴: 1. 싱글톤 모드는 클래스에 인스턴스 객체가 하나만 있고 액세스할 수 있는 전역 액세스 지점을 제공합니다. 2. 팩토리 패턴은 객체를 생성하는 데 사용되는 패턴입니다. 생성자의 특정 로직을 노출할 필요는 없지만 각 함수에 로직을 캡슐화해야 합니다. 3. 데코레이터 모드를 사용하면 구조를 변경하지 않고도 기존 기능에 새로운 기능을 추가할 수 있습니다. 4. 전략 패턴은 일련의 알고리즘을 정의하고 이를 하나씩 캡슐화하여 상호 교환 가능하게 만드는 것입니다. 5. 게시-구독자 모델.
이 튜토리얼의 운영 환경: windows7 시스템, vue3 버전, DELL G3 컴퓨터.
디자인 패턴이란:
디자인 패턴의 원리는 프로그램의 변경 사항을 찾아내고 변경 사항을 캡슐화하여 효율적인 재사용을 달성하는 것입니다. 핵심은 구조가 아니라 의도입니다. 디자인 패턴은 코드의 재사용성, 확장성, 유지 관리성 및 유연성을 향상시키는 데 도움이 될 수 있습니다. 디자인 패턴을 사용하는 궁극적인 목표는 코드의 높은 클러스터링과 낮은 결합도를 달성하는 것입니다. 코드를 더욱 강력하게 만드는 방법에 대해 생각해 본 적이 있습니까? 사실 핵심은 변화와 불변성을 파악하는 데 있습니다. 변경되는 부분은 더 유연하고 변경되지 않은 부분은 더 안정적인지 확인하고 디자인 패턴을 사용하면 이 목표를 달성할 수 있습니다.
Vue 프로젝트나 작업에서 흔히 사용되는 디자인 패턴을 정리해보겠습니다.
Singleton Pattern
Singleton Pattern: 클래스에 인스턴스 개체가 하나만 있는지 확인하고 액세스할 수 있는 전역 액세스 지점을 제공합니다.
장점: 단일 개체에 적용 가능하며 하나의 개체 인스턴스만 생성하므로 인스턴스의 빈번한 생성 및 소멸을 피하고 메모리 사용량이 줄어듭니다.
단점: 동적으로 확장된 개체에는 적용할 수 없습니다.
Scenario: 로그인 플로팅 창, Vue의 axios 인스턴스(Axios에서 요청 차단 및 응답 차단을 수행하고, 캡슐화된 Axios를 여러 번 호출하지만 한 번만 설정하고, 캡슐화된 Axios 내보내기는 싱글톤입니다), 글로벌 상태 관리 스토어 , 스레드 풀, 글로벌 캐시
function Person (name, age) { this.name = name this.age = age this.info = function () { console.log(`我的名字叫${this.name}, 我今年${this.age}了`) } } Person.getInstance = function (name, age) { if (!this.instance) { this.instance = new Person(name, age) } console.log(this.instance) return this.instance } let b1 = Person.getInstance('单例1', 18) let b2 = Person.getInstance('单例2', 18) b1.info() b2.info()
팩토리 패턴
팩토리 패턴: 팩토리 패턴은 객체를 만드는 데 사용되는 가장 일반적인 디자인 패턴입니다. 생성자의 특정 논리를 노출할 필요는 없지만 각 함수의 논리를 캡슐화하면 이 생성자를 팩토리로 간주할 수 있습니다.
Scenario: 생성자가 있는 곳에는 많은 생성자 코드가 작성되고 많은 새로운 연산자가 호출됩니다.
장점: 팩토리 패턴을 통해 코드를 복제하지 않고도 유사한 객체를 대량으로 빠르게 생성할 수 있습니다.
단점: 팩토리 패턴으로 생성된 객체는 Object에 속하며, 객체 유형을 구분할 수 없기 때문에 널리 사용되지 않습니다.
function Factory (name, age) { this.name = name; this.age = age; // 或者 // let obj = {} // obj.name = name // obj.age = age // return obj } Factory.prototype.say = function () { console.log(`我的名字叫${this.name}, 我今年${this.age}了`) } let zs = new Factory('张三', 18); let ls = new Factory('李四', 20); zs.say() ls.say()
데코레이터 모드
데코레이터 모드(Aspect 프로그래밍 AOP): 객체 자체를 변경하지 않는다는 점을 토대로, 함수 본문이 직접적으로 실행되는 경우 프로그램 실행 중에 객체에 동적으로 책임을 추가합니다. 수정된 경우 '개방 및 폐쇄 원칙'을 위반하고 '단일 책임 원칙'도 위반합니다. 간단히 말해서 구조를 변경하지 않고도 기존 기능에 새로운 기능을 추가할 수 있습니다.
Scenario: Vue에서 양식 확인 및 양식 제출 이 모델을 사용하고 비공개 및 공개 원칙을 따르세요.
function before (fn, callback) { let _this = this; return function () { callback.apply(this, arguments) return fn.bind(this, arguments) } } function after (fn, callback) { let _this = this return function () { let res = fn.apply(this, arguments) callback.apply(this, arguments) return res } } // before和after是两个高阶函数,让我们一起回忆一下什么是高阶函数? // 还知道call,apply,bind的区别吗 let getName = function getName () { // 加入这是你同事写的烂代码,看不下去的那种,那么别动他的代码 console.log('这是getName函数') } before(getName, function () { // 这个就是你要写的新逻辑 console.log('切入前代码') })() after(getName, function () { // 这个也是你要写的新逻辑 console.log('切入后代码') })()
Strategy Pattern
Strategy Pattern: 일련의 알고리즘을 정의하고 하나씩 캡슐화하여 상호 교환 가능하게 만드는 것입니다. VUE 양식 검증에도 사용할 수 있습니다. 객체의 상태가 변경되면 이에 의존하는 모든 객체에 알려야 합니다.
Observer 패턴은 일대일 종속 관계입니다.
손글씨 관찰자 모드 let strategy = {
'A': function (bonus) {
return bonus * 4
},
'B': function (bonus) {
return bonus * 3
}
}
function fn (level, bonus) {
return strategy[level](bonus)
}
let result = fn('A', 4000)
console.log(result, 'result')
// 策略模式提供了开放-封闭原则,将算法或者方法封装在一个类中,使它们易于切换,易于替换。
function func (a, b) {
let f = function f() {
return a + b
}
return f
}
손글씨 반응형// 这里可以将所有的表单验证正则函数写在这里
export const loginUsername = (str) => {
return /^[a-zA-Z0-9_]{3,20}$/.test(str);
};
[관련 권장사항: vuejs 비디오 튜토리얼, 웹 프론트엔드 개발]
위 내용은 vue는 어떤 모드를 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

React는 핵심 구성 요소 및 상태 관리 기능을 갖춘 사용자 인터페이스를 구축하기위한 JavaScript 라이브러리입니다. 1) 구성 요소화 및 상태 관리를 통해 UI 개발을 단순화합니다. 2) 작업 원칙에는 화해 및 렌더링이 포함되며 최적화는 React.Memo 및 Usememo를 통해 구현할 수 있습니다. 3) 기본 사용법은 구성 요소를 작성하고 렌더링하는 것입니다. 고급 사용법에는 후크 및 컨텍스트를 사용하는 것이 포함됩니다. 4) 부적절한 상태 업데이트와 같은 일반적인 오류는 ReactDevTools를 사용하여 디버그 할 수 있습니다. 5) 성능 최적화에는 React.Memo, 가상화 목록 및 코드플릿을 사용하는 것이 포함되며 코드를 읽을 수 있고 유지 관리 가능하게 유지하는 것이 가장 좋습니다.

React는 JSX와 HTML을 결합하여 사용자 경험을 향상시킵니다. 1) JSX는 개발을보다 직관적으로 만들기 위해 HTML을 포함시킨다. 2) 가상 DOM 메커니즘은 성능을 최적화하고 DOM 운영을 줄입니다. 3) 유지 보수성을 향상시키기위한 구성 요소 기반 관리 UI. 4) 상태 관리 및 이벤트 처리는 상호 작용을 향상시킵니다.

반응 구성 요소는 함수 또는 클래스로 정의 할 수 있으며 UI 로직을 캡슐화하고 소품을 통해 입력 데이터를 수락합니다. 1) 구성 요소 정의 : 기능 또는 클래스를 사용하여 반응 요소를 반환합니다. 2) 렌더링 구성 요소 : 반응 호출 렌더 메소드 또는 기능 구성 요소를 실행합니다. 3) 멀티플렉싱 구성 요소 : 소품을 통해 데이터를 전달하여 복잡한 UI를 구축합니다. 구성 요소의 수명주기 접근 방식을 통해 다른 단계에서 논리를 실행하여 개발 효율성 및 코드 유지 관리 가능성을 향상시킬 수 있습니다.

React Strict Mode는 추가 점검 및 경고를 활성화하여 React 응용 프로그램의 잠재적 문제를 강조하는 개발 도구입니다. 레거시 코드, 안전하지 않은 라이프 사이클 및 부작용을 식별하여 현대 반응 관행을 장려합니다.

반응 단편은 추가 DOM 노드없이 어린이를 그룹화하고 구조, 성능 및 접근성을 향상시킬 수 있습니다. 효율적인 목록 렌더링을위한 키를 지원합니다.

이 기사에서는 React의 조정 프로세스가 DOM을 효율적으로 업데이트하는 방법에 대해 자세히 설명합니다. 주요 단계에는 조정 트리거, 가상 DOM 생성, 차이 알고리즘 사용 및 최소 DOM 업데이트 적용이 포함됩니다. Perfo도 다룹니다

이 기사는 직접 DOM 조작을 최소화하고 업데이트를 최적화하여 성능을 향상시키는 웹 개발의 핵심 개념 인 Virtual DOM에 대해 설명합니다.

이 기사는 소프트웨어 개발의 요소와 구성 요소의 차이점에 대해 논의하여 역할, 차이 및 프로젝트 관리에 미치는 영향을 강조합니다. 주요 문제는 사용자 interfac 내의 복잡성, 재사용 및 기능이 포함됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

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

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

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

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

뜨거운 주제



