• 13.1 基本用法

    13.1 基本用法

    keep-alive的使用只需要在动态组件的最外层添加标签即可。

    1. <div id="app">
    2. <button @click="changeTabs('child1')">child1</button>
    3. <button @click="changeTabs('child2')">child2</button>
    4. <keep-alive>
    5. <component :is="chooseTabs">
    6. </component>
    7. </keep-alive>
    8. </div>
    1. var child1 = {
    2. template: '<div><button @click="add">add</button><p>{{num}}</p></div>',
    3. data() {
    4. return {
    5. num: 1
    6. }
    7. },
    8. methods: {
    9. add() {
    10. this.num++
    11. }
    12. },
    13. }
    14. var child2 = {
    15. template: '<div>child2</div>'
    16. }
    17. var vm = new Vue({
    18. el: '#app',
    19. components: {
    20. child1,
    21. child2,
    22. },
    23. data() {
    24. return {
    25. chooseTabs: 'child1',
    26. }
    27. },
    28. methods: {
    29. changeTabs(tab) {
    30. this.chooseTabs = tab;
    31. }
    32. }
    33. })

    简单的结果如下,动态组件在child1,child2之间来回切换,当第二次切到child1时,child1保留着原来的数据状态,num = 5

    13.1 基本用法 - 图1