You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.2 KiB
37 lines
1.2 KiB
// Reactive data - these automatically sync with v-model bound components |
|
const statusMessage = ref('Dialog is closed'); |
|
const greetingMessage = ref('Enter your name below'); |
|
const userName = ref(''); |
|
|
|
const openDialog = () => { |
|
console.log('Opening dialog...'); |
|
dialogOpen.value = true; |
|
statusMessage.value = 'Dialog is open'; |
|
}; |
|
|
|
const closeDialog = () => { |
|
console.log('Closing dialog...'); |
|
dialogOpen.value = false; |
|
statusMessage.value = 'Dialog is closed'; |
|
greetingMessage.value = 'Enter your name below'; // Reset greeting |
|
userName.value = ''; // Clear input |
|
}; |
|
|
|
const sayHello = () => { |
|
const name = userName.value || 'Anonymous'; |
|
console.log('User name from v-model:', name); |
|
greetingMessage.value = `Hello, ${name}! Nice to meet you!`; |
|
}; |
|
|
|
onMounted(() => { |
|
console.log('Component mounted!'); |
|
console.log('Reactive variables initialized:'); |
|
console.log('- statusMessage:', statusMessage.value); |
|
console.log('- greetingMessage:', greetingMessage.value); |
|
console.log('- userName:', userName.value); |
|
|
|
// Watch for changes to demonstrate reactivity |
|
watch(userName, (newValue) => { |
|
console.log('userName changed to:', newValue); |
|
}); |
|
}); |