vue父子页面,打开子页面每次created仅第一次执行
时间: 2023-08-08 19:00:59 浏览: 190
解决父组件将子组件作为弹窗调用只执行一次created的问题
在Vue框架中,当使用父子组件之间的路由导航时,打开子页面时,每次created钩子函数仅在第一次打开页面时被执行。
这是因为Vue中的实例被创建后,created钩子函数会在实例被创建完成后立即被调用,用于初始化数据、进行异步请求等操作。而在路由切换时,Vue会复用已经存在的组件实例,而不是每次都重新创建一个新的实例。
所以,当从父组件导航到子组件时,实际上是同一个组件实例复用了,并没有销毁和重新创建。因此,created钩子函数只会在第一次打开子页面时执行一次,之后再次打开该子页面时不会再次执行。
如果需要每次打开子页面都执行created钩子函数,可以使用Vue的keep-alive组件来对子组件进行缓存。将子组件放置在keep-alive组件中,在每次从父组件导航到子组件时,都会重新渲染缓存的子组件实例,从而触发created钩子函数的执行。
需要注意的是,在使用keep-alive组件时,由于子组件被缓存,因此可能需要处理子组件的数据重置和重新加载等问题,以确保每次打开子页面都能正常运行。
阅读全文