const props = defineProps({ table: { type: Object as PropType<Nullable<AccountOtherConfigApi.AccountOtherConfigVO>>, default: () => null }, title: propTypes.string.def(''), formType: propTypes.string.def('') }) /** 监听 table 属性,复制给 formData 属性 */ watch( () => props.table, (table) => { debugger if (!table) return formData.value = table formTitle.value = props.title + '账号配置' pushList.value = formData.value.infoList }, { deep: true, immediate: true } ) 为什么每次修改formData 里面的属性 也会进入监听器
时间: 2024-04-23 08:23:39 浏览: 12
根据你提供的代码,我可以看到在 `watch` 中监听了 `props.table` 的变化,如果 `props.table` 发生变化,就会执行回调函数,将 `table` 赋值给 `formData`。由于 `formData` 是一个响应式对象,如果对象中的属性发生变化,Vue 会自动检测到这种变化并进行响应,所以当你修改 `formData` 中的属性时,也会触发监听器的回调函数。因此,每次修改 `formData` 中的属性,都会进入监听器。
相关问题
const props = defineProps( {cardDate: Object as propType<Chartype>} )
这段代码是使用 Vue.js 的 defineProps 函数定义了一个名为 props 的变量,它接收一个对象作为参数,并且对象中有一个名为 cardDate 的属性,该属性的类型为 Chartype。其中,propType 是 Vue.js 提供的用于定义 prop 类型的类型检查器。这段代码的作用是定义了一个组件的 props,以便在组件中接收和处理外部传递过来的数据。
interface Props { to: string | Record<string, string> replace?: boolean } const props = defineProps<Props>()
这是一个 Vue 3 的代码片段,其中使用了 `defineProps` 函数来定义组件的 props。
`defineProps` 是一个用来定义组件 props 的函数,它会返回一个对象,这个对象包含了组件定义的所有 props。在上面的代码中,我们定义了一个叫做 `Props` 的接口,它有两个属性:`to` 和 `replace`,它们的类型分别为 `string | Record<string, string>` 和 `boolean`。
然后,我们调用 `defineProps` 函数来创建一个 props 对象,这个对象的类型为 `Props`。在组件的模板中,我们就可以使用这些 props 了,例如:
```
<template>
<router-link :to="to" :replace="replace">Hello, World!</router-link>
</template>
```
在这个例子中,我们使用了 `router-link` 组件,并将 `to` 和 `replace` 作为 props 传递给它。这样,我们就可以动态地设置链接的目标和是否采用替换模式了。