vue的watch中的immediate什么意思


$watch() 监听某个值(双向数据绑定)的变化, 一旦发生变化, 就调用引号里的方法, 从而达到change事件监听的效果.

它的值包括选项的对象,选项对象有
  1. handler: 其值是一个回调函数, 即监听到变化时应该执行的函数
  2. deep: 其值是true或false, 确认是否深入监听.(一般监听时是不能监听到对象属性值的变化的,数组的值变化可以听到)
  3. *immediate: 其值是true或false,确认是否以当前的初始值执行handler的函数.

immediate:true; 立即执行,当刷新页面时会立即执行一次handler函数

使用场景:
不加immediate:true; 在tab切换时,你已经选中了2-1,当你刷新页面时,选项会回到默认位置1-1
加immediate:true; 在tab切换时,你已经选中了2-1,当你刷新页面时,选项仍在2-1的位置

watch: {
    $route: {
         // 监听路由参数
         handler(){
             const {classify} = this.$route.query;
             if(classify){
                 this.classifyName = classify[0]; //一级和二级的绑定
                 this.classifyType = classify;
                 this.getMenus();
             }
             
         },
         immediate:true, //立即执行
     }
 },
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐