Demo17.vue 960 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <template>
  2. <div>
  3. <h2>watchEffect</h2>
  4. <p>
  5. 姓:<input type="text" v-model="user.firstName" >
  6. </p>
  7. <p>
  8. 名:<input type="text" v-model="user.lastName" >
  9. </p>
  10. <h4>全名:<input type="text" v-model="fullName"></h4>
  11. </div>
  12. </template>
  13. <script setup>
  14. import { ref, reactive,watch,watchEffect} from 'vue'
  15. // let firstName = ref('喜')
  16. // let lastName = ref('羊羊')
  17. let user = reactive({
  18. firstName:'喜',
  19. lastName:"羊羊"
  20. })
  21. let fullName = ref("");
  22. // watch监听
  23. // watch(()=>user.firstName)
  24. watch(user,({firstName,lastName}) => {
  25. // console.log(news,olds)
  26. fullName.value = firstName + "-" + lastName
  27. },{
  28. deep: true,
  29. immediate:true
  30. })
  31. // watchEffect监听 立即运行一个函数,同时响应式地追踪其依赖,并在依赖更改时重新执行
  32. watchEffect(()=>{
  33. console.log(fullName.value,'哈哈哈')
  34. console.log(user,'user')
  35. })
  36. </script>
  37. <style lang='scss' scoped>
  38. </style>