• 396 vue路由配置:动态路由,详情列表案例


    4.1 动态路由 => 详情列表

    导入 : 列表三个手机都要点击,进入详情页, 只需要一个组件,显示不同的数据即可

    # 入口
    <router-link to="/detail/1">手机1</router-link>
    <router-link to="/detail/2">手机2</router-link>
    <router-link to="/detail/3">手机3</router-link>
    
    <router-link to="/detail">手机4</router-link>  没有参数如何????
    
    # 规则
    routes: [
      // 2 . 路由规则
      { path: '/detail/:id?', component: Detail }
    ]
    
    # 获取参数的三种方式
    const Detail =  {
        template: `
            // 方式1 : 组件中直接读取
            <div> 显示详情页内容....{{ $route.params.id  }} </div>
        `,
        created() {
            // 方式2 : js直接读取
            // 打印只会打印一次,因为组件是复用的,每次进来钩子函数只会执行一次
            console.log(this.$route.params.id)
        },
        // 方式3 : 监听路由的参数,为什么不需要深度监听,因为一个路径变化,就会对应一个对新的路由对象(地址变)
        watch: {
            $route(to, from) {
                console.log(to.params.id)
            }
        }
    }
    

    05-动态路由-详情页.html

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8" />
        <title>Document</title>
    </head>
    
    <body>
        <!-- 
           动态路由
           1. 使用参数接收不同的路由参数  
            path ='/detail/:id'  
           2. 参数可传可不传  path ='/detail/:id?' 
         -->
    
        <div id="app">
            <!-- 1. 入口 -->
            <router-link to="/detail/1">手机1</router-link>
            <router-link to="/detail/2">手机2</router-link>
            <router-link to="/detail/3">手机3</router-link>
            <router-link to="/detail">手机4</router-link>
    
            <!-- 4. 出口 -->
            <router-view></router-view>
        </div>
    
        <script src="./vue.js"></script>
        <script src="./node_modules/vue-router/dist/vue-router.js"></script>
        <script>
            // 3. 组件
            const detail = {
                template: `<div>详情页组件 {{ $route.params.id }}</div>`
            }
    
            //  实例化
            const router = new VueRouter({
                // 2. 规则
                routes: [{
                    path: '/detail/:id?',
                    component: detail
                }]
            })
    
            const vm = new Vue({
                router,
                el: '#app',
                data: {}
            })
        </script>
    </body>
    
    </html>
    
  • 相关阅读:
    小透明学弟的华为上岸之路
    手把手体验远程开发,确实爽
    老弟做了个网盘,炸了!
    聊聊我在腾讯和字节工作感受
    2021,编程语言如何选择?
    优化了破网站的搜索功能
    15 道超经典大厂 Java 面试题!重中之重
    我两年的坚持,值了!
    聊聊百度搜索背后的故事
    struts2的配置步骤
  • 原文地址:https://www.cnblogs.com/jianjie/p/12539487.html
Copyright © 2020-2023  润新知