vue的beforecreated中可以访问props吗?

发布于 2025-01-12 00:11:04 字数 370 浏览 0 评论 0原文

在vue文档中,“beforeCreate”部分,我读到了以下内容:

在初始化实例时、在 props 解析之后、在处理其他选项(例如 data() 或计算)之前立即调用。

这是否意味着我可以在 beforeCreate 挂钩中获取 props ?如果是这样,我怎样才能得到它? 在我的子组件中,我尝试像这样获取父组件传递的消息,但失败了。

export default {
  name: 'Child',
  props: ['message'],
  beforeCreate() {
    console.log(this.message)
  }
}

In the vue docs, the part of "beforeCreate", I read the following:

Called immediately when the instance is initialized, after props resolution, before processing other options such as data() or computed.

Does this means that I can get props in beforeCreate hooks? if so, how can I get it?
In my child component, I try like this to get the message passed by parent component, but failed.

export default {
  name: 'Child',
  props: ['message'],
  beforeCreate() {
    console.log(this.message)
  }
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

云朵有点甜 2025-01-19 00:11:04

请检查以下代码片段,看起来您的代码没问题:

const app = Vue.createApp({
  data() {
    return {
      msg: 'aaa',
    };
  },
})
app.component('Child', {
  template: `<div>{{ message }}</div>`,
  props: ['message'],
  beforeCreate() {
    console.log('before create: ', this.message)
  }
})
app.mount('#demo')
<script src="https://unpkg.com/[email protected]/dist/vue.global.prod.js"></script>
<div id="demo">
  <child :message="msg"></child>
</div>

Please check the following snippet, looks like your code is fine:

const app = Vue.createApp({
  data() {
    return {
      msg: 'aaa',
    };
  },
})
app.component('Child', {
  template: `<div>{{ message }}</div>`,
  props: ['message'],
  beforeCreate() {
    console.log('before create: ', this.message)
  }
})
app.mount('#demo')
<script src="https://unpkg.com/[email protected]/dist/vue.global.prod.js"></script>
<div id="demo">
  <child :message="msg"></child>
</div>

情丝乱 2025-01-19 00:11:04

如果您使用的是 Vue2,您可能无法直接通过 this[key] 访问 props。使用 this.$options.propsData[key] 代替:

beforeCreate() {
    console.log('before create: ', this.$options.propsData.myProp)
}

If you're using Vue2, you may not be able to access props directly through this[key]. Use this.$options.propsData[key] instead:

beforeCreate() {
    console.log('before create: ', this.$options.propsData.myProp)
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文