美文网首页
VUE-router

VUE-router

作者: 扶光_ | 来源:发表于2022-10-27 17:11 被阅读0次

可重用的内容可以保存在src / components文件夹中
与路由器绑定的内容可以保存在src / views中

使用不同的路由来显示不同的页面


image.png

一个路由对应一个VUE文件


image.png
  • 第一种页面会将所有页面引入进来
  • 第二种是懒加载(也就是说用户有没有去访问你这个about路由,按需去引入,如果访问了就引入)

所以我们一般首页都用第一种方式来做,因为这样用户的访问速度更快

当然第二种方法里面的注释并不是没有用处的,他是在用webpack打包的时候取的名字


完成以上路由的配置,我们需要将路由搭载到页面中,

image.png
router-link标签是路由的链接(可以理解为a标签)
router-view 显示对应路由的内容

也可以使用name名字来代替/的写法

<router-link :to="{name:'Message'}">Messgae</router-link>

也可以将上方nav专门放在一个组件中,如下的AppNav组件中,并挂载到app主组件上


image.png appnav组件代码

动态路由

比如当我们文章页里的文章很多时,我们不可能一个文章就写对应的一个路由,那么就要使用我们的动态路由了
写法路由:

 {
    path: '/article/:id',//动态路由
    name: 'ArticleId',
    component:()=>import('../views/ArticleId.vue')
  }
<li><router-link to="/article/1">第一篇文章</router-link></li>
    <li><router-link to="/article/2">第二篇文章</router-link></li>
    <li><router-link to="/article/3">第三篇文章</router-link></li>

当如何拿到动态路由的id呢,就需要用到this.$route.params.id来获取到动态路由的参数,并知道是那个文章

  <div>
    <h1>{{title}}</h1>
  
  </div>
</template>

<script>
export default {
    data(){
        return{
            title:"文章标题"
        }
    },
  created(){
    let id = this.$route.params.id
    //根据id查询文章对应信息
    // ajax
    this.title = '这是第'+id+'篇文章'
                         
  }
}

也就是当结构相同,只是文章里面对应的内容不一致时,需要使用动态路由来处理更加便捷

相关文章

网友评论

      本文标题:VUE-router

      本文链接:https://www.haomeiwen.com/subject/xjhozrtx.html