当前位置:   article > 正文

vue watch监听

vue watch监听

Vue.js 中,watch 是一个对象,用于观察和响应 Vue 实例上的数据变化。当被监视的属性发生变化时,watch 里的回调函数将被调用。

vue2)官方文档:计算属性和侦听器 — Vue.js (vuejs.org)

下面是一个简单的 watch 示例:

  1. <template>
  2. <div>
  3. <input v-model="message" placeholder="输入一些文字...">
  4. <p>{{ message }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. message: ''
  12. };
  13. },
  14. watch: {
  15. // 监听 message 属性的变化
  16. message(newVal, oldVal) {
  17. console.log(`新的 message 值是: ${newVal}`);
  18. console.log(`旧的 message 值是: ${oldVal}`);
  19. }
  20. }
  21. };
  22. </script>

在这个例子中,当 message 的值发生变化时,watch 里的回调函数将被调用,并打印出新旧的值。

你还可以使用深度监听对象或数组的变化,只需在 watch 选项中将属性设置为一个对象,并设置 deep 属性为 true

  1. <template>
  2. <div>
  3. <input v-model="userInfo.name" placeholder="输入名字...">
  4. <p>{{ userInfo.name }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. userInfo: {
  12. name: ''
  13. }
  14. };
  15. },
  16. watch: {
  17. userInfo: {
  18. handler(newVal, oldVal) {
  19. console.log(`新的 userInfo 值是:`, newVal);
  20. console.log(`旧的 userInfo 值是:`, oldVal);
  21. },
  22. deep: true // 深度监听
  23. }
  24. }
  25. };
  26. </script>

在这个例子中,当 userInfo 对象的 name 属性发生变化时,watch 里的回调函数将被调用,并打印出新旧的值。

此外,还可以使用 immediate 属性,使得 watch 在初始化时立即执行一次回调函数:

  1. watch: {
  2. message: {
  3. handler(newVal, oldVal) {
  4. console.log(`新的 message 值是: ${newVal}`);
  5. console.log(`旧的 message 值是: ${oldVal}`);
  6. },
  7. immediate: true // 初始化时立即执行
  8. }
  9. }

在这个例子中,watch 在初始化时将立即执行一次回调函数,打印出 message 的初始值。

更多请看其他大佬文章: 

Vue.js 监听属性 | 菜鸟教程 (runoob.com) 

Vue进阶(三十五):watch 监听函数详解 - 掘金 (juejin.cn) 

Vue之watch监听的原理_vue watch原理-CSDN博客 

vue的watch监听_vue watch监听-CSDN博客 

vue-watch监听功能(侦听器)详解&使用_vue watch监听-CSDN博客 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/106231
推荐阅读
相关标签
  

闽ICP备14008679号