vue.js keep-alive 和事件渲染
vue.js keep-alive and event rendering
我有 1 个主组件和 2 个 child。
在我的主人中:
<keep-alive>
<component :is="getChild" @onrender="childRender" />
</keep-alive>
所以我从 child 1 切换到 child 2 并保持每个状态。
- getChild 开关 child 组件(按钮...不是这里的问题)。
- onrender 在 child load
时发出
- child渲染就写一个console.log.
问题:当我们使用 keep-alive 时,child 组件不是 re-render 并且当我使用 onCreated 或 onMounted 或 onUpdated 时。 .. 没有附加内容,这很正常。那么如何用 keep-alive 捕获 "render" 事件呢?
我知道我可以使用公共汽车或像 Vuex 这样的商店来保持状态...但如果可能的话我不想要它。
谢谢。
In 2.2.0+ and above, activated and deactivated will fire for all nested components inside a tree.
使用激活的生命周期钩子。
export default {
activated() {
this.$emit("activated");
}
}
Vue.js 文档 link:https://vuejs.org/v2/api/#keep-alive
现场演示,您可以在其中与 <keep-alive>
一起玩:https://codepen.io/3vilArthas/pen/BeZgbE
我有 1 个主组件和 2 个 child。 在我的主人中:
<keep-alive>
<component :is="getChild" @onrender="childRender" />
</keep-alive>
所以我从 child 1 切换到 child 2 并保持每个状态。
- getChild 开关 child 组件(按钮...不是这里的问题)。
- onrender 在 child load 时发出
- child渲染就写一个console.log.
问题:当我们使用 keep-alive 时,child 组件不是 re-render 并且当我使用 onCreated 或 onMounted 或 onUpdated 时。 .. 没有附加内容,这很正常。那么如何用 keep-alive 捕获 "render" 事件呢?
我知道我可以使用公共汽车或像 Vuex 这样的商店来保持状态...但如果可能的话我不想要它。
谢谢。
In 2.2.0+ and above, activated and deactivated will fire for all nested components inside a tree.
使用激活的生命周期钩子。
export default {
activated() {
this.$emit("activated");
}
}
Vue.js 文档 link:https://vuejs.org/v2/api/#keep-alive
现场演示,您可以在其中与 <keep-alive>
一起玩:https://codepen.io/3vilArthas/pen/BeZgbE