vue-router 打包文件,路由懒加载、路由嵌套

1.vue-router 打包文件

运行 npm run build打包文件,可生成dist文件夹
在这里插入图片描述
其中
app文件 是当前应用程序开发的所有代码,都在这个文件里面,(业务代码,自己手动写的代码)
vendor(提供商,第三方)在项目中引用第三方的内容,如vue
manifest:是为我们打包的代码(相互依赖)做低层支撑

2.vue-router 路由懒加载

当打包构建应用时,js包会变得非常大,影响页面加载。
可以将不同路由对应的组件分割成不同的代码块,当路由被访问的时候才加载对应的组件。就是将不同的路由打包到不同的js文件里面
最好是一个路由打包到一个js文件中
原来导入这三个路由是前三个注释的代码,路由懒加载如下所示:
在这里插入图片描述
在这里插入图片描述
老师讲课截图:
在这里插入图片描述

3.路由的嵌套使用

1.在Home下创建连个子文件,HomeMessages.vue和HomeNews.vue文件

在这里插入图片描述
HomeMessages.vue内容如下:

<template>
    <div>
        <ul>
        <li>消息</li>
        <li>消息</li>
        <li>消息</li>
        <li>消息</li>
        </ul>
    </div>
</template>

<script>
export default {
    name:'HomeMessages'
}
</script>

<style scoped>

</style>

HomeNews.vue代码如下:

<template>
    <div>
        <ul>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
            <li>新闻</li>
        </ul>
    </div>
</template>

<script>
export default {
    name:'HomeNews'
}
</script>

<style scoped>

</style>
2.在index文件中导入这两个新的vue文件

导入文件

const HomeNews = ()=> import('../components/HomeNews')
const HomeMessages = ()=> import('../components/HomeMessages')

在Home文件中导入它的孩子们:

{
    path:'/home',
    component:Home,
    children:[
      {
        //注意:子路由路径前不能加 /
        path:'news',
        component:HomeNews
      },
      {
        path:'messages',
        component:HomeMessages
      }
    ]
  },
3.在Home.vue中使用这两个路由
<template>
    <div>
        <h2>我是Home</h2>
        <router-link to="/home/news">新闻</router-link>
        <router-link to="/home/messages">消息</router-link>
        <router-view></router-view>
    </div>
</template>

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

4.router参数传递

主要有两种方法:params和query
在这里插入图片描述
query的方法如下:

1.先创建一个新的文档vue
<template>
    <div>
        <h2>我是Profile</h2>
        
    </div>
</template>

<script>
export default {
    name:'Home'
}
</script>

<style scoped>

</style>
2.导入到index文件中
const Profile = ()=> import('../components/Profile')
{
    path:'/profile',
    component:Profile
  }
3.在app.vue文件中导入这个新路由

重点:query:{name:xiang,age:18,height:170} 想要传到profile的内容

<router-link v-bind:to="{path:'/profile',query:{name:xiang,age:18,height:170}}" tag="button">文档</router-link>
    <router-link v-bind:to="'/user/'+userId" tag="button">用户</router-link>

注意传递对象类型就可以绑定v-bind,query就是需要传入的内容

4.在profile显示传入的内容

在profile.vue添加:

<template>
    <div>
        <h2>我是Profile</h2>
        <h2>{{$route.query}}</h2>
    </div>
</template>

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值