VUE基础(四)

一、watch侦听器

定义:watch侦听器允许开发者监听数据的变化,从而针对数据的变化进行特定操作

 export default {
    name: 'MyWatch',
    data() {
      return {
        username: 'admin',
      }
    },
    // 需要在watch节点下,定义侦听器
    watch: {
     //监听userName的变化
     username(newVal,oldVal){
        console.log("变化后的新值", newVal);
        console.log("变化前的旧值", oldVal);
     }
    },
  }

 immediate选项

作用:组件在初次加载完毕后不会调用watch监听器,immediate选项可以让watch监听器立即被调用

 另username不在是一个方法了,而是指向一个对象

 export default {
    name: 'MyWatch',
    data() {
      return {
        username: 'admin',
      }
    },
    // 需要在watch节点下,定义侦听器
    watch: {
     //监听userName的变化
     username: {
      // handler属性是固定写法,当username变化时,调用handler
      async handler(newVal, oldVal) {
        const { data: res } = await axios.get('https://www.escook.cn/api/finduser/' + newVal)
        console.log(res)
      },
      // 立即触发 watch 侦听器
      immediate: true,
    },
    },
  }

 deep选项

作用:如果监听的是对象,对象中的属性值发生了变化,则无法被监听到,此时需要使用deep选项

export default {
  name: 'MyWatch',
  data() {
    return {
      info: {
        username: 'zs',
        age: 20,
      },
    }
  },
  watch: {
    info: {
      async handler(newVal) {
        const { data: res } = await axios.get('https://www.escook.cn/api/finduser/' + newVal.username)
        console.log(res)
      },
      deep: true,//需要使用deep节点,否则info中的username变化监听不到
    },
  },
}

 仅需监听对象中一个属性的变化

export default {
  name: 'MyWatch',
  data() {
    return {
      info: {
        username: 'zs',
        age: 20,
      },
    }
  },
  watch: {
   //仅监听info对象中username属性的变化
  'info.username': {
      async handler(newVal) {
        const { data: res } = await axios.get('https://www.escook.cn/api/finduser/' + newVal)
        console.log(res)
      },
    },
  },
}

 计算属性和侦听器的区别

计算属性侧重于监听多个值的变化,最终计算并返回一个新值

侦听器侧重于监听单个数据的变化,最终执行特定的业务处理,不需要有任何返回值

二、组件生命周期

组件的运行过程

  1. 在内存中创建组价的实例对象
  2. 把创建的组件实例渲染到页面上
  3. 当组件中data数据更新后,vue会重新渲染组件的DOM结构
  4. 组件切换时销毁需要被隐藏的组件

 组件的声明周期:组件从创建到渲染到销毁的整个过程,强调的是一个时间段

 组价的声明周期函数:监听组件运行的不同时刻,会伴随着组件的运行而自动调用

生命周期函数

生命周期函数 执行时机 所属阶段 执行次数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值