vue는 어떤 모드를 사용하나요?
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
}
로그인 후 복사
손글씨 반응형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 }
위 내용은 vue는 어떤 모드를 사용하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!// 这里可以将所有的表单验证正则函数写在这里
export const loginUsername = (str) => {
return /^[a-zA-Z0-9_]{3,20}$/.test(str);
};

핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

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

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

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

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

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

뜨거운 주제











HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 관리하고 유지 관리 할 수 있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

Vue DevTools를 사용하여 브라우저 콘솔에서 vue 탭을 보면 VUE 버전을 쿼리 할 수 있습니다. npm을 사용하여 "npm list -g vue"명령을 실행하십시오. package.json 파일의 "종속성"객체에서 vue 항목을 찾으십시오. Vue Cli 프로젝트의 경우 "vue -version"명령을 실행하십시오. & lt; script & gt에서 버전 정보를 확인하십시오. vue 파일을 나타내는 html 파일의 태그.

VUE의 기능 차단은 지정된 기간 내에 기능이 호출되는 횟수를 제한하고 성능 문제를 방지하는 데 사용되는 기술입니다. 구현 방법은 다음과 같습니다. lodash 라이브러리 가져 오기 : 'lodash'에서 import {debounce}; Debounce 기능을 사용하여 인터셉트 기능을 만듭니다. const debouncedfunction = debounce (() = & gt; { / logical /}, 500); 인터셉트 함수를 호출하면 제어 기능이 최대 500 밀리 초 안에 한 번 호출됩니다.
