definePropsRefs
Stability:
stableReturns refs from defineProps instead of a reactive object. It can be destructured without losing reactivity.
toRefs(defineProps()) => definePropsRefs()
| Features | Supported |
|---|---|
| Vue 3 | ✅ |
| Nuxt 3 | ✅ |
| Vue 2 | ✅ |
| TypeScript / Volar Plugin | ✅ |
Basic Usage
vue
<script setup lang="ts">
// ✅ won't lose reactivity with destructuring
const { foo, bar } = definePropsRefs<{
foo: string
bar: number
}>()
console.log(foo.value, bar.value)
</script>With Default Value
vue
<script setup lang="ts">
import { withDefaults } from 'vue-macros/macros' with { type: 'macro' }
const { foo } = withDefaults(
definePropsRefs<{
foo?: string
}>(),
{ foo: 'test' },
)
console.log(foo.value)
</script>Volar Configuration
jsonc
{
"vueCompilerOptions": {
"plugins": ["vue-macros/volar"],
},
}
Kevin Deng
zhiyuanzmj
Leo