VUE3.x教程(七)侦听器和组件

1、侦听器

所谓侦听器即监听某数据,当前发生变化时触发对应的函数。

watch() 可以直接侦听一个 ref,并且只要 count 的值改变就会触发回调。

以下例子中,监听todoId,当其发生变化时调用fetchData函数。

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

const todoId = ref(1)
const todoData = ref(null)

async function fetchData() {
  todoData.value = null
  const res = await fetch(
    `https://jsonplaceholder.typicode.com/todos/${todoId.value}`
  )
  todoData.value = await res.json()
}

fetchData()

// 监听todoId,todoId发生变化时调用fetchData,给todoData赋值
watch(todoId, fetchData)
</script>

<template>
  <p>Todo id: {{ todoId }}</p>
  // !todo表示为空,此时:disabled为true,将button置灰
  <button @click="todoId++" :disabled="!todoData">Fetch next todo</button>
  // !todo表示todo为空,此时显示Loading
  <p v-if="!todoData">Loading...</p>
  <pre v-else>{{ todoData }}</pre>
</template>

2、组件

 Vue 应用往往是由嵌套组件创建的。父组件可以在模板中渲染另一个组件作为子组件。要使用子组件,我们需要先导入它:

1、子组件

2、父组件引入子组件

<script setup>
import ChildComp from './ChildComp.vue'
</script>

<template>
  // 引入子组件,并显示其中的“<h2>A Child Component!</h2>”
  <ChildComp />
</template>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值