محاسبه شده ها (computed)
اینجا درباره «محاسبه شده های ویو» حرف می زنیم. «محاسبه شده (Computed)» یعنی مقدارِ خودکار بر اساس داده ها. مثل معدل که از نمره ها حساب می شود.
تعریف «محاسبه شده های ویو» و کاربرد
گزینه «computed» یک شیء از ویژگی های محاسبه ای است. هر ویژگی مثل تابع بدون ورودی رفتار می کند و خروجی برمی گرداند.
خروجی «computed» کش می شود. بنابراین تا زمانی که وابستگی تغییر نکند، دوباره محاسبه نمی شود.
می توان «getter» و «setter» نوشت. پس ویژگی هم خواندنی است و هم قابل تنظیم.
نمونه کد: متن دکمه با computed
<template>
<div>
<h2 v-if="showMsg">{{ msg }}</h2>
<button @click="showMsg = !showMsg">{{ btnText }}</button>
</div>
</template>
<script>
export default {
data() {
return {
msg: 'Hello World!',
showMsg: false
};
},
computed: {
btnText() {
if (this.showMsg) {
return 'Hide';
} else {
return 'Show';
}
}
}
};
<\/script>
گام های عملی استفاده
- وابستگی ها را در data تعریف کن.
- خاصیت محاسبه ای را داخل computed بساز.
- در قالب، مقدار computed را نمایش بده.
نکته: برای منطق نمایشی، computed تمیزتر از متد است. چون خروجی کش می شود.
هشدار: داخل computed از «Arrow Function» پرهیز کن. چون this به نمونه ویو وصل نمی شود.
ارتباط با بخش های دیگر
اگر رویدادها را مدیریت می کنی، سراغ متدها برو. همچنین داده ها را در گزینه data تنظیم کن. صفحه محاسبه شده های ویو مرجع همین مبحث است.
جمع بندی سریع
- computed خروجی وابسته به data می سازد.
- خروجی تا تغییر وابستگی، کش می ماند.
- می توان getter و setter نوشت.
- از Arrow Function برای computed استفاده نکن.
منابع بیشتر: مرجع computed، Computed Properties، راهنمای v-on.