首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
vue.js
宝塔
V2EX  ›  Vue.js

请问为什么 vue watch 第一次传值不触发其中的方法?

  •  
  •   W1angMh · 123 天前 · 1522 次点击
    这是一个创建于 123 天前的主题,其中的信息可能已经有所发展或是发生改变。

    props: ['flowData'], watch: { flowData:function(newVal, oldVal){ console.log("这是前面传来的 props 值: " + newVal + ",原来的值是: " + oldVal); this.showFlowChart(newVal); } } 有如上代码,props 是父组件传来的值,watch 监听 props 中'flowData'值的改变,一旦'flowData'中的值发生改变,那么就触发 showFlowChart()方法。 我遇到的问题是:页面刷新后,父组件第一次传值 watch 不触发( flowData 百分之百传过来了),求助应该怎么解决,百度看了好半天都没找到合适的解决方法( flowData 是一个 String 类型)

    9 回复  |  直到 2019-07-19 17:29:46 +08:00
        1
    Hoshinokozo   123 天前
    deep:true
        2
    Hoshinokozo   123 天前
    @Hoshinokozo 打错了,是 immediate:true
        3
    W1angMh   123 天前
    @Hoshinokozo 谢谢,之前试过 immediate,但是使用方式好像不对,我改成如下代码后解决了我的问题
    watch: {
    "flowData":{
    immediate: true,
    handler:function(newVal, oldVal){
    console.log("这是前面传来的 props 值: " + newVal + ",原来的值是: " + oldVal);
    this.showFlowChart(newVal);
    }
    }
    },
        4
    redbuck   123 天前
    还可以手动添加监视,比声明式灵活
        5
    wxsm   123 天前
    百度半天都不看文档系列,看文档 2 分钟解决
        6
    W1angMh   123 天前
    @wxsm 是的 下次应该先看 vue 的文档
        7
    doing1   123 天前
    不错哇,佩服,学习了
        8
    shenyu1996   123 天前
    这样啊 第一次我都是直接在 mounted 处理的
        9
    W1angMh   123 天前
    我的本职是后端开发,因为业务需要,临时做一下前端,这个还是问了部门其他组的前端才改过来的
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2264 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 29ms · UTC 15:31 · PVG 23:31 · LAX 07:31 · JFK 10:31
    ♥ Do have faith in what you're doing.