Vue 30일 - 메소드 및 계산 속성
This article is a chapter from 30 Days of Vue, a free resource that introduces the Vue.js framework in 30 bite sized morsels! You can view and download all the articles directly from the website - https://www.fullstack.io/30-days-of-vue/.
방법
Vue 인스턴스의 메서드는 일반 JavaScript 함수와 유사하며 명시적 호출 시에만 계산됩니다.우리는 사용 방법이 아니라 템플릿에 예상된 기능 변경 사항을 연결할 수 있다.
우리 예를 하나 봅시다.문자열에서 일련의 문자를 반전하는 데 사용되는 Vue 문서의 예제를 다시 사용합니다.먼저
message
속성을 포함하는 Vue 인스턴스를 만듭니다. 이 속성의 값은 'Greetings!'
입니다.new Vue({
el: '#app',
data: {
message: 'Greetings!',
},
});
템플릿에서 message
을 직접 귀속시키고 그 반향 상태에서 message
을 귀속합니다.속성을 문자 그룹(message
), 반전 그룹의 요소(.split('')
)로 나누고, 반전 그룹을 하나의 문자열(.reverse()
)에 다시 연결하여 .join('')
의 값을 반전시킬 것입니다.<html>
<head>
<link rel="stylesheet" href="./styles.css" />
<link rel="stylesheet"
href="https://unpkg.com/bulma/css/bulma.css" />
</head>
<body>
<div id="app">
<div class="card">
<header class="card-header card-header-title">
<span>Original:</span>
{{ message }}
</header>
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ message.split('').reverse().join('') }}
</header>
</div>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="./main.js"></script>
</body>
</html>
Bulma에서 제공한 양식을 통해 우리의 간단한 응용 프로그램은 다음과 같다.위와 같이 기능 변경 자체를 내연적으로 지정하는 것은 틀린 것이 아니다.그러나 예상된 변경이 더 이해하기 어려워질 때 방법은 일반적으로 사용하기에 더욱 적합하다.
위의 예제를
message
문자열 반전을 위해 Vue 인스턴스에서 사용하는 방법으로 변경할 수 있습니다.new Vue({
el: '#app',
data: {
message: 'Greetings!',
},
methods: {
reverseString(string) {
return string.split('').reverse().join('');
},
}
});
이 방법의 이름은 reverseString
으로 유효한 하중이 필요합니다.템플릿에서 이 방법을 설명하고 message
속성을 유효한 부하로 전달할 수 있습니다.<html>
<head>
<link rel="stylesheet" href="./styles.css" />
<link rel="stylesheet"
href="https://unpkg.com/bulma/css/bulma.css" />
</head>
<body>
<div id="app">
<div class="card">
<header class="card-header card-header-title">
<span>Original:</span>
{{ message }}
</header>
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ reverseString(message) }}
</header>
</div>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="./main.js"></script>
</body>
</html>
우리의 사용자 인터페이스는 이전과 같이 메시지 메시지와 역방향 버전을 아래에 표시합니다.기능 측면- 위의 두 예는 같은 기능을 실현했다.방법은 틀이 더욱 깨끗하고 이해하기 쉽기 때문에 더욱 적합할 수 있다.
우리는 또 다른 속성(computed 속성)을 사용하여 상술한 것과 같은 결과를 실현할 수 있다.
속성 계산
계산 특성은 보기에 표시해야 하는 정보를 처리하는 복잡한 계산에 사용됩니다.같은 간단한 응용 프로그램을 구축하는 세 번째 교체에서 우리는
reverseMessage
이라는 계산 속성을 도입하여 message
의 데이터 속성을 간단하게 반전시킬 것이다.new Vue({
el: '#app',
data: {
message: 'Greetings!',
},
computed: {
reverseMessage() {
return this.message.split('').reverse().join('');
},
}
});
템플릿에서 다른 데이터 속성을 렌더링하는 것처럼 reverseMessage
을 렌더링하여 속성 값을 계산할 수 있습니다.<html>
<head>
<link rel="stylesheet" href="./styles.css" />
<link rel="stylesheet"
href="https://unpkg.com/bulma/css/bulma.css" />
</head>
<body>
<div id="app">
<div class="card">
<header class="card-header card-header-title">
<span>Original:</span>
{{ message }}
</header>
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ reverseMessage }}
</header>
</div>
</div>
<script src="https://unpkg.com/vue"></script>
<script src="./main.js"></script>
</body>
</html>
이 기능을 사용하면 필요에 따라 애플리케이션이 실행됩니다.이것은 반환값을 계산 속성이나 사용 방법으로 대체하는 데 어떤 차이가 있는지 문제를 일으켰다.
방법 및 계산 속성
위의 예에서 하나의 방법이나 하나의 계산 속성을 사용하면 거의 똑같은 결과를 얻을 수 있다.계산 속성을 사용하는 관건적인 차이점은 계산 속성은 그들이 의존하는 의존항을 바탕으로 캐시하는 것이다.
만약 우리가 성명한
reverseMessage
의 계산 속성을 본다면, 우리는 그것이 데이터 의존성-message
속성을 가지고 있음을 볼 수 있다.computed: {
reverseMessage() {
return this.message.split('').reverse().join('');
},
}
reverseMessage
의 값은 message
의 데이터 속성에 직접 달려 있다.message
의 값이 변경되면 reverseMessage
도 변경됩니다.종속 데이터 속성(message
)이 변하지 않는 한 (즉 변하지 않는 것), 여러 번 호출된 계산 속성(reverseMessage
)은 항상 같은 캐시 값을 되돌려주기 때문에 계산 속성은 매우 유용하다.시각적으로 간단한 예를 봅시다.computedproperty 함수에
console.log()
메시지를 놓을 수 있습니다. 함수가 실행될 때 알림:computed: {
reverseMessage() {
console.log('computed function is run!');
return this.message.split('').reverse().join('');
},
}
템플릿에서 reverseMessage
의 계산 속성을 여러 번 렌더링할 수 있습니다.<div id="app">
<div class="card">
<header class="card-header card-header-title">
<span>Original:</span>
{{ message }}
</header>
</div>
<div class="card">
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ reverseMessage }}
</header>
</div>
<div class="card">
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ reverseMessage }}
</header>
</div>
<div class="card">
<header class="card-header card-header-title">
<span>Reversed:</span>
{{ reverseMessage }}
</header>
</div>
</div>
응용 프로그램을 실행하고 브라우저 콘솔을 열면 console.log()
메시지가 한 번만 기록됩니다.reverseMessage
속성을 처음 계산하면 값이 캐시됩니다.reverseMessage
의 값을 호출할 때마다 message
의 속성은 변경되지 않기 때문에 캐시 결과를 되돌려주고 계산 함수를 다시 실행할 필요가 없습니다.만약 우리가 비슷한 예시를 반복하지만, 템플릿에서 여러 번 방법을 호출하면, 방법을 설명할 때마다
console.log()
메시지를 실행합니다.한 마디로 하면 계산 속성을 대체하는 방법을 사용할 수 있지만 만약에 우리가 데이터 속성에서 값을 계산하려고 한다면 기본적으로 계산 속성을 사용해야 한다.일단 우리의 응용 프로그램이 무수한 속성을 가지기 시작하고 모든 파생 기능의 계산 비용이 약간 높을 수 있으며, 캐시는 우리의 응용 프로그램의 성능을 향상시키는 데 도움을 줄 수 있다.
다음 표에서는 사용 방법 또는 계산 속성 간의 주요 차이점을 강조 표시합니다.
좋은 경험의 법칙을 따르다.
니가 Vue의 초보라면js와 기타 관심 있는 화제 - 수시로 https://www.fullstack.io/30-days-of-vue/을 보십시오.
Reference
이 문제에 관하여(Vue 30일 - 메소드 및 계산 속성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/djirdehh_83/30-days-of-vue---methods-and-computed-properties-18m8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)