vueJs(2.x)+router+vuex简易博客系统<五>

上一篇文章简单介绍了下vue的基本语法,其实入门还是非常简单,回到项目中,我们把界面已经全部都写好了,在github中可以下载:https://github.com/shiyou00/blog_vue 可以对着项目看看,这章主要结合项目讲解下路由的知识

项目中有两个界面:
page/home/index.vue 这个是博客首页
page/home/content.vue 这个是博客的内容页

我们的请求接口是这样的:
1、进入首页请求所有文章,然后渲染成列表。
2、文章列表跳转到文章详情页时,传递参数id到文章详情页,然后在详情页通过id请求后台数据接口获取相应的文章信息。

这里就使用了路由知识,有几个问题,我们来解决下?
1、配置首页和详情页路由
2、路由是如何进行跳转
3、vue组件是如何接受参数的

配置界面路由

router/index.js中

import Vue from 'vue'
import Router from 'vue-router'
import homeIndex from '../page/home/index'
import contentView from '../page/home/content'
Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/index.html',
      name: 'homeIndex',
      component: homeIndex
    },
    {
      path: '/content/:id',
      name: 'contentView',
      component: contentView,
      props: true
    }
  ]
})

path:访问路径
name:给组件定义一个名字
component:引入的组件(import)

路由的跳转

配置好了之后,然后在界面中这样访问:

    <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    <router-link to="/index.html">Go to index</router-link>

    <!-- 路由出口 -->
    <!-- 路由匹配到的组件将渲染在这里 -->
    <router-view></router-view>

在实际开发中的首页会这样定义

   {
      path: '/',
      name: 'homeIndex',
      component: homeIndex
    }

app入口组件中添加

<template>
  <div id="app">
    <router-view/>
  </div>
</template>

这样项目启动直接输入http://localhost:8089(本项目中使用的) , 就可以访问到首页了。

路由带参数跳转

   {
      path: '/content/:id', //这里配置动态参数id
      name: 'contentView',
      component: contentView,
      props: true
    }

这是组件中,需要跳转的组件

<router-link v-bind:to="{name:'contentView',params:{id:article.id}}">

name:跳转的组件名称
params:id的动态值
props:true 的跳转到 了contentView组件后,在该组件中要获取参数id是通过props中获取,当然还可以通过$route的方式获取,这里就不讲解了,可以通过官方文档去学习。

组件中通过props中接收参数(content.vue文件)

export default{
    name:"contentView",
    props:['id'], //通过这里去接收路由传递过来的参数
    components:{
      moduleNav,leftSide,moduleNotice,footerModule
    },
    created(){
      this.contentData(this.id); //这个方法就是把传递过来的参数调用api去请求响应的文章信息,这个是通过vuex状态管理来实现的,现在不需要理会,只需要知道,获取到该参数值,并且通过id去请求到相应的文章数据
    },
    methods: {
      ...mapActions([
        'contentData'
      ])
    }
  }

总结下:通过这篇文章我们学习到了配置路由,路由带参数跳转,已经组件接受参数值等操作,当然路由还有一些内容,包括:”嵌套路由”,”编程时路由导航”,”路由重定向”,等等更多路由参数,不过个人还是建议有空可以通读下api文档,然后实际需要用的时候再去查询使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值