在vue3的<script setup>语法糖中,method和计算属性等都怎么添加

在 <script setup> 语法糖中,添加方法、计算属性等和普通的组合式 API 用法相似,但更简洁,不需要显式地从 setup 函数返回。以下分别介绍如何添加方法、计算属性、监听器等。

1. 添加方法

在 <script setup> 中添加方法很简单,直接定义一个函数即可,该函数会自动在模板中可用。

<template>
  <div>
    <p>{{ message }}</p>
    <button @click="changeMessage">改变消息</button>
  </div>
</template>

<script setup>
import { ref } from 'vue';

// 定义响应式数据
const message = ref('初始消息');

// 定义方法
const changeMessage = () => {
  message.value = '新的消息';
};
</script>

2. 添加计算属性

使用 computed 函数来定义计算属性。computed 函数可以接收一个 getter 函数来创建只读计算属性,或者接收一个包含 get 和 set 方法的对象来创建可写计算属性。

只读计算属性

<template>
  <div>
    <p>数字: {{ num }}</p>
    <p>数字的平方: {{ squaredNum }}</p>
    <button @click="increment">增加数字</button>
  </div>
</template>

<script setup>
import { ref, computed } from 'vue';

// 定义响应式数据
const num = ref(1);

// 定义只读计算属性
const squaredNum = computed(() => {
  return num.value * num.value;
});

// 定义方法
const increment = () => {
  num.value++;
};
</script>

可写计算属性

<template>
  <div>
    <p>名: {{ firstName }}</p>
    <p>姓: {{ lastName }}</p>
    <p>全名: {{ fullName }}</p>
    <button @click="updateFullName">更新全名</button>
  </div>
</template>

<script setup>
import { ref, computed } from 'vue';

// 定义响应式数据
const firstName = ref('张');
const lastName = ref('三');

// 定义可写计算属性
const fullName = computed({
  get() {
    return `${firstName.value}${lastName.value}`;
  },
  set(newValue) {
    firstName.value = newValue.slice(0, 1);
    lastName.value = newValue.slice(1);
  }
});

// 定义方法
const updateFullName = () => {
  fullName.value = '李四';
};
</script>

3. 添加监听器

使用 watch 函数来添加监听器,监听响应式数据的变化。

<template>
  <div>
    <p>计数器: {{ count }}</p>
    <button @click="increment">增加计数器</button>
  </div>
</template>

<script setup>
import { ref, watch } from 'vue';

// 定义响应式数据
const count = ref(0);

// 定义方法
const increment = () => {
  count.value++;
};

// 添加监听器
watch(count, (newValue, oldValue) => {
  console.log(`计数器从 ${oldValue} 变为 ${newValue}`);
});
</script>

通过以上示例,你可以在 <script setup> 语法糖中方便地添加方法、计算属性和监听器等功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值