Ionic 5、Vue 3 - 如何在 setup() 中使用 Ionic 生命周期挂钩?
Ionic 5, Vue 3 - How to use Ionic lifecycle hooks inside setup()?
Ionic
文档描述了如何在 Vue method
.
中使用 ionViewWillEnter
、ionViewDidEnter
等 Ionic 生命周期方法
https://ionicframework.com/docs/vue/lifecycle
我正在寻找一种在新的 Vue 3 setup()
方法中访问它们的方法,以便我能够访问那里定义的属性。有可能吗?
export default defineComponent({
...
setup(){
const list = ref([]);
// I need something like this
const ionViewDidEnter = () => {
list.value.push(...['some', 'array', 'here']);
},
return {
list,
ionViewDidEnter
};
}
});
不幸的是没有,至少现在还没有,因为触发事件的代码专门寻找要注册为组件方法一部分的生命周期事件。幸运的是,我已经提交了一个 PR,它将解决这个问题,并允许您像定义 mounted 或任何其他 Vue 挂钩一样定义它们。
我将确保添加涵盖组合 API 场景的测试。
https://github.com/ionic-team/ionic-framework/pull/22241
意思是你可以这样做:
export default defineComponent({
...
ionViewDidEnter() {
...
},
setup(){
...
}
});
由于合并了此 PR,现在可以在组合 API 样式中使用
https://github.com/ionic-team/ionic-framework/pull/22970
export default defineComponent({
...,
components: { IonPage },
setup() {
onIonViewDidEnter(() => {
console.log('ionViewDidEnter!');
});
}
});
为了补充 Mark Beech 所说的内容,您必须导入 onIonViewDidEnter
import { onIonViewDidEnter } from '@ionic/vue';
export default defineComponent({
...
ionViewDidEnter() {
console.log('Hompage');
},
setup(){
...
}
});
Ionic
文档描述了如何在 Vue method
.
ionViewWillEnter
、ionViewDidEnter
等 Ionic 生命周期方法
https://ionicframework.com/docs/vue/lifecycle
我正在寻找一种在新的 Vue 3 setup()
方法中访问它们的方法,以便我能够访问那里定义的属性。有可能吗?
export default defineComponent({
...
setup(){
const list = ref([]);
// I need something like this
const ionViewDidEnter = () => {
list.value.push(...['some', 'array', 'here']);
},
return {
list,
ionViewDidEnter
};
}
});
不幸的是没有,至少现在还没有,因为触发事件的代码专门寻找要注册为组件方法一部分的生命周期事件。幸运的是,我已经提交了一个 PR,它将解决这个问题,并允许您像定义 mounted 或任何其他 Vue 挂钩一样定义它们。
我将确保添加涵盖组合 API 场景的测试。
https://github.com/ionic-team/ionic-framework/pull/22241
意思是你可以这样做:
export default defineComponent({
...
ionViewDidEnter() {
...
},
setup(){
...
}
});
由于合并了此 PR,现在可以在组合 API 样式中使用
https://github.com/ionic-team/ionic-framework/pull/22970
export default defineComponent({
...,
components: { IonPage },
setup() {
onIonViewDidEnter(() => {
console.log('ionViewDidEnter!');
});
}
});
为了补充 Mark Beech 所说的内容,您必须导入 onIonViewDidEnter
import { onIonViewDidEnter } from '@ionic/vue';
export default defineComponent({
...
ionViewDidEnter() {
console.log('Hompage');
},
setup(){
...
}
});