千峰商城-springboot项目搭建-51-router路由组件传参

本文详细介绍了如何使用Vue中的/url/:attr方法通过路由传值给组件,并与通过props传参的方式进行比较,展示了两种方法的优缺点及适用场景。
1.方法一:可以通过 /url/:attr 方式实现通过路由传值给组件。($route和组件耦合度过高)
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/vue.js" ></script>
        <script type="text/javascript" src="js/vue-router.js"></script>
    </head>
    <body>
        <div id="container">
            <router-link to="/a/101">路径A</router-link>
            <router-view></router-view>
        </div>
        
        <script type="text/javascript">
            
            const t1 = {
                template:
                `<div style="width:400px; height:200px; border:blue 1px solid">index:{{$route.params.id}}</div>`
                };
                
                const myrouter = new VueRouter({
                routes:[
                    {path:"/a/:id",
                     component:t1}
                
            ]});
                var vm = new Vue({
                el:"#container",
                router:myrouter
            });
        </script>
    </body>
</html>

 

 2.方法二:通过props传参。消除了$route属性。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/vue.js" ></script>
        <script type="text/javascript" src="js/vue-router.js"></script>
    </head>
    <body>
        <div id="container">
            <router-link to="/a/102">路径A</router-link>
            <router-view></router-view>
        </div>
        
        <script type="text/javascript">
            
            const t1 = {
                props:["id"],
                template:
                `<div style="width:400px; height:200px; border:blue 1px solid">index:{{id}}</div>`
                };
                
                const myrouter = new VueRouter({
                routes:[
                    {path:"/a/:id",
                     component:t1,
                     props:true
                    }
                
            ]});
                var vm = new Vue({
                el:"#container",
                router:myrouter
            });
        </script>
    </body>
</html>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值