웹 프론트엔드 JS 튜토리얼 Vue.js 계산 속성 계산 및 감시(5)

Vue.js 계산 속성 계산 및 감시(5)

Dec 13, 2016 pm 04:33 PM

템플릿의 표현식 바인딩은 매우 편리하지만 실제로는 간단한 작업에만 사용됩니다. 템플릿은 뷰의 구조를 설명하는 데 사용됩니다. 템플릿에 논리를 너무 많이 넣으면 템플릿이 과중해지고 유지 관리가 어려워질 수 있습니다. 그렇기 때문에 Vue.js는 바인딩 표현식을 하나의 표현식으로 제한합니다. 둘 이상의 표현식 논리가 필요한 경우 **계산된 속성**을 사용해야 합니다.

Vue 인스턴스의 계산된 속성

<div class="test">    
<p>原始的信息{{message}}</p>   
<p>计算后的信息{{ComputedMessage}}</p>  
</div>
로그인 후 복사

js 코드

var myVue = new Vue({    
el: ".test",    
data: {      
message:12    
},    
computed:{      
ComputedMessage:function () {        
return this.message+10;      
}   
}  
});
로그인 후 복사

인터페이스에 12와 22가 표시됩니다.

위 방법은 하나입니다. 버퍼링 구현의 효과는 버퍼링에 따라 달라집니다. 계산된 속성은 관련 종속성(메시지)이 변경될 때만 다시 평가됩니다. 즉, 메시지가 변경되지 않는 한 ComputedMessage에 여러 번 액세스해도 이 속성이 다시 계산되지 않습니다. .

계산된 ComputedMessage 속성은 항상 메시지에 따라 달라집니다.

함수

<div class="test">    
<p>原始的信息{{message}}</p>    
<p>计算后的信息{{MessageFunction()}}</p>  
</div>
로그인 후 복사

js 코드

var myVue = new Vue({    
el: ".test",    
data: {      
message:12    
},    
methods:{      
MessageFunction:function () {        
return this.message+10;      
}   
}  
});
로그인 후 복사

를 호출해도 동일한 효과를 얻을 수 있습니다. 결과는 위와 동일하지만 다시 렌더링될 때마다 다시 호출됩니다.
그래서 위의 두 가지 방법을 사용할 때에는 캐싱을 사용해야 하는지 먼저 판단해야 합니다

vue 인스턴스의 watch를 사용하세요

이게 이해가 안가네요
그런데 계산된 속성을 더 편리하고 빠르게 사용하세요

<div class="test">   
<p>原始的信息{{fullName}}</p> 
</div>
로그인 후 복사

js 코드

var myVue = new Vue({   
el: ".test",   
data: {     
firstName:"fur",     
lastName:"bool"  
},   
computed:{     
fullName:function () {       
return this.firstName+this.lastName     
}   
} 
});
로그인 후 복사

그리고 계산된 속성 setter와 getter를 기본으로 설정할 수 있습니다.

set 및 get 호출 프로세스를 보여줍니다

<div class="test">   
<p>原始的信息{{fullName}}</p>   
<button @click="fu">test</button> 
</div>
로그인 후 복사

js 코드

var myVue = new Vue({    
el: ".test",    
data: {      
firstName:"fur",      
lastName:"bool",      
fullName:"sasas dsdsd dsds"   
},    
computed:{      
fullName:{        
get:function () {          
console.log("get")          
return this.firstName+this.lastName        
},        
set:function(value){          
var names=value.split(" ");          
this.firstName=names[0];          
this.lastName=names[names.length-1];          
console.log("set");        
}     
 }    
 },    
 methods:{      
 fu:function () {        
 myVue.fullName="sasas dsdsd dsds";        
 console.log(myVue.firstName);   //sasas        
 console.log(myVue.lastName);  //dsds      
 }    
 } 
  });
로그인 후 복사

Get이 먼저 출력됩니다.

fullName에 값을 할당하기 위해 버튼을 클릭할 때 먼저 set을 호출한 다음 get 메소드를 호출합니다.

사용자 정의 Watcher

계산된 속성은 대부분의 경우 매우 적합하지만 때로는 Watcher를 사용자 정의해야 하는 경우도 있습니다. 데이터 변경에 대응하고 싶을 때 비동기 작업 및 기타 작업을 수행하는 것이 매우 유용하기 때문입니다

위는 Vue.js 계산 속성이며 자세한 내용은 PHP를 참조하세요. 중국사이트 (www.php.cn)!

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

사용자에게 드문 결함 발생: Samsung Watch 스마트워치에서 갑자기 흰색 화면 문제가 발생함 사용자에게 드문 결함 발생: Samsung Watch 스마트워치에서 갑자기 흰색 화면 문제가 발생함 Apr 03, 2024 am 08:13 AM

스마트폰 화면에 녹색 줄이 나타나는 문제를 겪어보셨을 텐데요. 한 번도 본 적이 없더라도 인터넷에서 관련 사진을 본 적이 있을 것입니다. 그렇다면 스마트워치 화면이 하얗게 변하는 상황을 겪어보신 적 있으신가요? CNMO는 지난 4월 2일 외신을 통해 한 Reddit 사용자가 소셜 플랫폼에 삼성 워치 시리즈 스마트워치 화면이 하얗게 변하는 사진을 공유했다는 사실을 접했습니다. 해당 이용자는 "떠날 때 충전 중이었는데, 돌아올 때 이랬다. 재시작을 하려고 했는데, 삼성워치 스마트워치 화면이 하얗게 변했다"고 적었다. Reddit 사용자가 특정 모델을 지정하지 않았습니다. 하지만 사진으로 보면 삼성 워치5가 될 것 같습니다. 이전에 다른 Reddit 사용자도 보고했습니다.

Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Vue 프로젝트에 Ace 코드 편집기를 통합하는 방법에 대한 자세한 그래픽 설명 Apr 24, 2023 am 10:52 AM

Ace는 JavaScript로 작성된 내장형 코드 편집기입니다. Sublime, Vim 및 TextMate와 같은 기본 편집기의 기능 및 성능과 일치합니다. 모든 웹페이지와 JavaScript 애플리케이션에 쉽게 삽입할 수 있습니다. Ace는 Cloud9 IDE의 메인 편집자로 유지되며 Mozilla Skywriter(Bespin) 프로젝트의 후속 버전입니다.

Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Vue3에서 단위 테스트를 작성하는 방법 살펴보기 Apr 25, 2023 pm 07:41 PM

Vue.js는 오늘날 프런트엔드 개발에서 매우 인기 있는 프레임워크가 되었습니다. Vue.js가 계속 발전함에 따라 단위 테스트는 점점 더 중요해지고 있습니다. 오늘은 Vue.js 3에서 단위 테스트를 작성하는 방법을 살펴보고 몇 가지 모범 사례와 일반적인 문제 및 솔루션을 제공하겠습니다.

Vue의 JSX 구문과 템플릿 구문의 간단한 비교(장단점 분석) Vue의 JSX 구문과 템플릿 구문의 간단한 비교(장단점 분석) Mar 23, 2023 pm 07:53 PM

Vue.js에서 개발자는 JSX 구문과 템플릿 구문이라는 두 가지 다른 구문을 사용하여 사용자 인터페이스를 만들 수 있습니다. 두 구문 모두 장점과 단점이 있습니다. 차이점, 장점 및 단점을 논의해 보겠습니다.

vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 vue가 파일 분할 업로드를 구현하는 방법에 대한 간략한 분석 Mar 24, 2023 pm 07:40 PM

실제 개발 프로젝트 프로세스에서는 상대적으로 큰 파일을 업로드해야 하는 경우가 있는데, 그러면 업로드가 상대적으로 느려지므로 백그라운드에서 파일 조각을 업로드하려면 매우 간단합니다. 기가바이트 파일 스트림이 여러 개의 작은 파일 스트림으로 절단된 다음 인터페이스는 작은 파일 스트림을 각각 전달하도록 요청됩니다.

vue3에서 Amap API를 사용하는 방법에 대해 이야기해 보겠습니다. vue3에서 Amap API를 사용하는 방법에 대해 이야기해 보겠습니다. Mar 09, 2023 pm 07:22 PM

Amap을 사용할 때 공식적으로 많은 사례와 데모를 추천했지만 이러한 사례는 모두 기본 액세스 방법을 사용했으며 vue 또는 React의 데모를 제공하지 않았습니다. 그러나 이 기사에서는. , 우리는 vue3가 일반적으로 사용되는 Amap API를 어떻게 사용하는지 살펴보겠습니다. 모든 사람에게 도움이 되기를 바랍니다!

chatgpt의 타자기 효과를 구현한 vue3의 상세 예시 chatgpt의 타자기 효과를 구현한 vue3의 상세 예시 Apr 18, 2023 pm 03:40 PM

chatgpt 미러 사이트에서 작업하던 중 일부 미러 사이트에서는 타자기 커서 효과가 없고 텍스트 출력만 하는 것을 원하지 않았던 걸까요? 어쨌든 하고 싶어요. 그래서 열심히 공부해서 타자기와 커서의 효과를 깨달았습니다. 이제 제 해결방법과 렌더링을 공유하겠습니다~

vue3 데이터가 watch/watchEffect를 모니터링하는 방법 vue3 데이터가 watch/watchEffect를 모니터링하는 방법 May 12, 2023 pm 06:31 PM

리스너의 기능은 반응 상태가 변경될 때마다 트리거되는 것으로 알고 있습니다. 결합된 API에서는 watch() 함수와 watchEffect() 함수를 사용할 수 있습니다. 동시에 Vue 구성요소 업데이트 및 리스너 콜백을 트리거합니다. 기본적으로 사용자가 만든 리스너 콜백은 Vue 구성 요소가 업데이트되기 전에 호출됩니다. 이는 리스너 콜백에서 액세스하는 DOM이 Vue에 의해 업데이트되기 전의 상태가 됨을 의미합니다. 그럼, 어떻게 하면 잘 활용할 수 있는지 살펴볼까요? 그들 사이의 차이점은 무엇입니까? watch() 함수 watch는 심판 청취와 같은 특정 데이터 소스를 청취해야 합니다. watch의 첫 번째 매개변수는 다음과 같습니다.

See all articles