Vue.js 什么时候定义的道具等于传递给组件的道具?

Vue.js 什么时候定义的道具等于传递给组件的道具?,vue.js,vuejs2,Vue.js,Vuejs2,我的组件有一些不可靠的行为,我要调试的prop被传递到该组件: <my-component :number="someNumber" /> number通过标准的prop:[“number”]声明在my component中提供 我的问题:在反应性循环的哪个点上,number定义为父项中的someNumber值 具体来说,当number具有正确的值时,我需要执行一些操作(在此之前,我假设它是undefined)。我可以这样做: created() moun

我的组件有一些不可靠的行为,我要调试的
prop
被传递到该组件:

<my-component :number="someNumber" />

number
通过标准的
prop:[“number”]
声明在
my component
中提供

我的问题:在反应性循环的哪个点上,
number
定义为父项中的
someNumber

具体来说,当
number
具有正确的值时,我需要执行一些操作(在此之前,我假设它是
undefined
)。我可以这样做:

  • created()
  • mounted()
  • 或者通过观看
    number
哪种方法是正确的?(即,
number
具有传递给组件的值的部件)


我目前的调查结果是:

  • 第一次使用组件时,
    watch
    正常,在
    mounted()
    中,值为
    undefined
  • 在后续使用组件时,
    watch
    不会触发(当传递相同的值时),但是
    mounted()
    现在具有正确的值

因此,我的解决方法是同时使用这两种方法(对未定义的
进行一些检查),但它看起来非常不稳定。

在创建
之前的
数据()
中可以找到它。在没有道具的情况下,您可以定义要由Vue执行的某些代码的唯一位置是
beforeCreated

Vue.component('my-component'){
道具:[“p”],
数据(){
返回{
d:这个
}
},
创建(){
log(“创建:”,this.p,this.d)
},
安装的(){
log(“mounted:”,this.p,this.d)
},
模板:`{p}}{{d}`
})
const vm=新的Vue({
el:“#应用程序”,
数据(){
返回{
v:10
}
},
})