On gists
defineProps - Vue (and reactive behavior)
•
Popular ⭐
Vue.js
parent.vue
Raw
#
<script setup>
import Child from './Child.vue'
import { ref } from 'vue'
const test = ref('one')
setTimeout(() => {
test.value = 'two'
}, 3000)
</script>
<template>
<h1>Parent</h1>
<Child :test="test"/>
</template>
child.vue
Raw
#
<script setup>
import { ref, watch, toRefs } from 'vue'
const props = defineProps({
test: String
})
let refTest = ref(props.test)
const { test: testToRefs } = toRefs(props)
watch(() => props.test, (newValue) => {
refTest.value = newValue
})
</script>
<template>
<div>
All ways how to have reactive props ...
<hr />
child: <br />
<hr />
test -> {{ test }} <br />
testToRefs -> {{ testToRefs }} <br />
$props.test -> {{ $props.test }} <br />
refTest-> {{ refTest }} <br />
</div>
</template>
<!--
after 3 seconds
test -> two
testToRefs -> two
$props.test -> two
refTest-> two
-->