• vue--vuerouter缓存路由组件


    作用:能保存组件原来的数据!!!(注意:时同一个父路由路径下切换才行)

    在其父组件中使用 标签,include的值为组件名!!!

       <ul>
        <li>
            <router-link active-class="active" to="/home/message">message</router-link>
        </li>
        <li>
            <router-link active-class="active" to='/home/news'>news</router-link>
        </li>
        </ul>
        <!-- include的值为组件名!!! -->
        <keep-alive include="News">
            <router-view></router-view>
        </keep-alive>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    缓存多个组件路由

    <keep-alive :include="['News','Message']">
                <router-view></router-view>
            </keep-alive>
    
    • 1
    • 2
    • 3

    代码演示:

    <template>
        <div class="Home">
           <h1>Home</h1>
           <ul>
            <li>
                <router-link active-class="active" to="/home/message">message</router-link>
            </li>
            <li>
                <router-link active-class="active" to='/home/news'>news</router-link>
            </li>
            </ul>
            <!-- include的值为组件名!!! -->
            <keep-alive include="News">
                <router-view></router-view>
            </keep-alive>
        </div>    
    </template>
    
    <script>
    export default {
        name:'Home',
        data(){
            return{
            }
        },
        methods:{
        }
        
    }
    </script>
    
    <style scoped>
        .Home{
            background-color: aqua;
        }
    </style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36

    路由index.js

    // 该文件用于专门创建路由器
    import VueRouter from 'vue-router'
    import About from '../pages/About'
    import Home from '../pages/Home'
    import News from '../pages/News'
    import Message from '../pages/Message'
    import Detail from '../pages/Detail'
    
    // 创建并暴露一个路由器
    export default new VueRouter({
        routes:[
            {
                name:'guanyu',
                path:'/about',
                component:About,
                children:[
                    {
                        // 二级路由路径不能加/
                        path:'message',
                        component:Message,
                        children:[
                            {
                                name:'xiangqing',
                                // path:'detail/:id/:title',
                                path:'detail',
                                component:Detail,
                                // props的第一种写法,值为对象,
                                // 该对象中的所有key-value都会以props的形式传给Detail组件
                                // props:{a:1,b:'hello'}
                                // props的第二种写法,值为布尔值,若该布尔值为真
                                // 就会把该路由组件收到的所有params参数,以props的形式传给Detail组件
                                // props:true
                                // props的第三种写法,值为函数
                                props($route){
                                    return {id:$route.query.id,title:$route.query.title}
                                }
    
                            }
                        ]
                    }
                ]
            },
            {
                path:'/home',
                component:Home,
                children:[
                    {
                        // 二级路由路径不能加/
                        path:'news',
                        component:News
                    },
                    {
                        // 二级路由路径不能加/
                        path:'message',
                        component:Message,
                        children:[
                            {
                                name:'xiangqing',
                                // path:'detail/:id/:title',
                                path:'detail',
                                component:Detail,
                                // props的第一种写法,值为对象,
                                // 该对象中的所有key-value都会以props的形式传给Detail组件
                                // props:{a:1,b:'hello'}
                                // props的第二种写法,值为布尔值,若该布尔值为真
                                // 就会把该路由组件收到的所有params参数,以props的形式传给Detail组件
                                // props:true
                                // props的第三种写法,值为函数
                                props($route){
                                    return {id:$route.query.id,title:$route.query.title}
                                }
    
                            }
                        ]
                    }
                
                ]
            }
        ]
    })
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80

    结果:
    在这里插入图片描述

  • 相关阅读:
    基于STM32设计的智慧路灯(太阳能+华为云IOT)
    ROS学习笔记06、ROS常用组件(TF坐标变换、rosbag、rqt工具箱)
    一口气说出4种主流数据库ID自增长,面试官懵了
    AsyncHttpClient And Download Speed Limit
    Visual Assist 代码辅助检查和重构
    聊聊分布式架构04——RPC通信原理
    HCIA数据通信——交换机(Vlan间的通信与安全)
    Linux Debian12使用git将本地项目打标签、创建分支和分支合并到master再上传到码云(gitee)远程仓库
    【深度学习】YOLOv5替换自有VOC数据集
    kaggle机器学习baselines
  • 原文地址:https://blog.csdn.net/qq_43470725/article/details/125466915