#vuejs3 #lifecycle
Вопрос:
У меня есть небольшая проблема с пониманием того, как работает жизненный цикл Vue 3.
Когда я запускаю фрагмент кода, результатом является значение: 2. Но если я удалю строку this.name = «vuepass» this.pass; (внутри функции beforeCreate) код работает так, как ожидалось, возвращая значение:3.
Я знаю, что модификация реактивных переменных внутри beforeCreate не имеет смысла, так как реактивная система еще не создана, но я не понимаю, влияет ли на нее тот факт, есть линия или нет. На самом деле, я провел тот же тест в Vue 2, и он работает правильно.
const app = {
data() {
return {
pass: 0,
name: "value"
}
},
beforeCreate() {
this.pass ;
this.name = "vuepass" this.pass;
console.log(">> BEFORECREATE");
},
created() {
this.pass ;
console.log(">> CREATED");
},
beforeMount() {
this.pass ;
console.log(">> BEFOREMOUNT");
},
mounted() {
this.pass ;
console.log(">> MOUNTED");
},
beforeUpdate() {
console.log(">> BEFOREUPDATE");
},
updated() {
console.log(">> UPDATED");
}
};
const application = Vue.createApp(app);
const vm = application.mount("#mydiv");
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Lifecycle Vue v3</title>
</head>
<body>
<div id="mydiv">
<p>{{ name }}: {{ pass }}</p>
</div>
</body>
<script src="https://unpkg.com/vue@next"></script>
</html>
есть идеи?
Комментарии:
1. Мне просто интересно, когда
data
это доступно в крючке жизненного цикла. Но это должно быть идентично для Vue2 и Vue3…