Vue学习之vue-router

一、什么是vue-router

vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,适合用于构建单页面应用。vue的单页面应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统的页面应用,是用一些超链接来实现页面切换和跳转的。在vue-router单页面应用中,则是路径之间的切换,也就是组件的切换。

路由模块的本质 就是建立起url和页面之间的映射关系。

二、vue-router的使用方式

1:下载 npm i vue-router -S
这一步在我们在创建vue项目时会提示是否下载vue-router选择yes
会在目录生成一个router文件夹内有一个index.js文件,可以在里面进行下面的操作。也可自己新建一个router文件
2:在main.js中引入 import VueRouter from ‘vue-router’;
3:安装插件Vue.use(VueRouter);
4:创建路由对象并配置路由规则

 let router = new VueRouter({
     routes:[{
     path:'/home',component:Home}]});

5:将其路由对象传递给Vue的实例,options中加入 router:router
6:在app.vue中留坑

 <router-view></router-view>

具体代码:

//main.js文件中引入
import Vue from 'vue';
import VueRouter from 'vue-router';
//主体
import App from './components/app.vue';
import Home from './components/home.vue'
//安装插件
Vue.use(VueRouter); //挂载属性
//创建路由对象并配置路由规则
let router = new VueRouter({
     
    routes: [
        //一个对象
        {
     
         path: '/home', 
        component: Home
         }
    ]
});
//new Vue 启动
new Vue({
     
    el: '#app',
    //让vue知道我们的路由规则
    router: router, //可以简写router
    render: c => c(App),
})

最后在app.vue中“留坑”

//app.vue中
<template>
    <div>
        <!-- 留坑,非常重要 -->
        <router-view></router-view>
    </div>
</template>
<script>
    export default {
     
        data(){
     
            return {
     }
        }
    }
</script>

三、vue-router参数传递

1.用name传递参数

在路由文件src/router/index.js里配置name属性

routes: [
    {
     
      path: '/',
      name: 'Hello',
      component: Hello
    }
]

模板里(src/App.vue)用$route.name来接收 :

<p>{
     {
      $route.name}}</p>

2、 通过 标签中的to传参

这种传参方法的基本语法:

<router-link :to="{name:xxx,params:{key:value}}">valueString</router-link>

先在src/App.vue文件中

<router-link :to="{name:'hi1',params:{username:'jspang',id:'555'}}">Hi页面1</router-link>

然后把src/router/index.js文件里给hi1配置的路由起个name,就叫hi1.

{
     path:'/hi1',name:'hi1',component:Hi1}

最后在模板里(src/components/Hi1.vue)用$route.params.username进行接收.

{
     {
     $route.params.username}}-{
     {
     $route.params.id}}

3 利用url传递参数:在配置文件里以冒号的形式设置参数。

在/src/router/index.js文件里配置路由

{
     
    path:'/params/:newsId/:newsTitle',
    component:Params
}

需要传递参数是新闻ID(newsId)和新闻标题(newsTitle).所以我们在路由配置文件里制定了这两个值。

在src/components目录下建立params.vue组件,也可以说是页面。我们在页面里输出了url传递的的新闻ID和新闻标题。

<template>
    <div>
        <h2>{
     {
      msg }}</h2>
        <p>新闻ID{
     {
      $route.params.newsId}}</p>
        <p>新闻标题:{
     {
      $route.params.newsTitle}}</p>
    </div>
</template>
<script>
export default {
     
  name: 'params',
  data () {
     
    return {
     
      msg: 'params page'
    }
  }
}
</script>

在App.vue文件里加入标签。这时候就可以直接利用url传值了

<router-link to="/params/198/jspang website is very good">params</router-link>

4、使用path来匹配路由,然后通过query来传递参数

<router-link :to="{ name:'Query',query: { queryId:  status }}" >
     router-link跳转Query
</router-link>

对应路由配置:

  {
     
     path: '/query',
     name: 'Query',
     component: Query
   }

于是我们可以获取参数了:

this.$route.query.queryId

后面还有多层嵌套的组件组合在下篇文章中跟新。

你可能感兴趣的:(笔记,vue,react,js)