返回顶部
首页 > 资讯 > 前端开发 > JavaScript >深入理解Vue-cli4路由配置
  • 695
分享到

深入理解Vue-cli4路由配置

2024-04-02 19:04:59 695人浏览 泡泡鱼
摘要

目录前言-Vue路由一、最基本路由配置1.配置router/index.js2.配置App.vue二、路由懒加载技术三、路由嵌套四、动态路由1.动态路由配置2.动态路由传参总结前言-

前言-vue路由

Vue-router是Vue官方的路由插件,与vue.js深度集成.
在使用了vue-router的单页面应用中,url的改变会引起组件的切换,从而达到页面切换的效果,所以如何让URL按照我们的意愿去改变和URL改变后页面去向何处是配置vue-router的两大问题.

[SPA网页]前端渲染使得单页面富应用的SPA页面得以实现,整个网页只有一个html页面,静态资源服务器里只有一套HTML & CSS,甚至只有一套JS.

[富应用] 得以实现依赖于发送至服务端的一个新的请求URL从服务器中获取到资源后,前端路由会负责分配资源给页面的相应组件;

[单页面] 的实现需要url在前端改变,前端路由出现后,前端路由会根据router的监听,从映射关系里找到需要改变的部分,抽取分配新的资源,并仅仅重新渲染需要改变的部分;

一、最基本路由配置

首先得安装vue-router,怎么装就不说了…
在我们安装vue-router成功后,项目文件的src内会出现一个"router"文件夹,这个文件夹内会有一个index.js,对router的配置就主要在这里完成了.

在这里插入图片描述

打开它,然后在 routes 数组中进行配置,一个页面的路由在这个数组里被集合为一个对象,其内部包括path和component等属性,对应着URL怎么样改变会做出怎样的反应;

1.配置router/index.js


//这是在router/index.js,全部;
import { createRouter, createWEBHistory } from 'vue-router'
import Home from '../views/Home.vue'

const routes = [
   //在此处配置路由;
]
//在router4中使用createRouter替代了new VueRouter;
const router = createRouter({ 
  history: createWebHistory(process.env.BASE_URL),
  routes
  //在此处引入所有页面的路由配置数组routes;
})

export default router   
//导出包含着所有路由配置的router对象,
//在main.js中注入后供全局使用;

component属性:值为一个页面,这个页面控件需要提前引入.

path属性:规定URL内出现什么时跳转到component属性对应的页面.


//这是在router/index.js,末尾部分略去;
import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'
import News from '../views/News.vue'
//引入3个页面控件;
const routes = [
    {
        path: '/',  
        name: 'Home',
        component: Home   
   },
   {
        path: '/about',
        name: 'About',
        component: About  
   },
   {
        path: '/news', 
        name: "News",
        component: News  
   },
]

2.配置App.vue

前面规定好了url改变为不同字符时会怎样进行跳转,现在得想想怎么才能让URL改变了,以我们的方式改变.
因为只有App.vue会被render渲染,大家一开始看到的和仅仅能操作的都只有App.vue,所以我们对URL改变方式的规定只能在这里进行.

认识两种新的标签,他们已经在全局被注册过了.


  <router-link to="要在URL上添加的字符">XXX</router-link>
  //<router-link>会被渲染成为<a>;
  <router-view />
  //这俩需要组合使用;

App.vue里所有的页面跳转都由< router-link>通过改变URL进行驱动.

< router-view>是一个占位标签,它规定了router-link标签需要显示在什么位置
,总之你删了它,router-link就显示不了了(那都不重要,我们先说路由吧…).


<!-- 这是在App.vue中 -->
<template>
  <div id="nav">
  <!-- to属性规定如何改变URL; -->
  <!-- Tag属性规定router-link标签需要被渲染成什么HTML元素; -->
    <router-link to="/" Tag="a">Home页面</router-link> |
    <router-link to="/about" Tag="a">About页面</router-link> |
    <router-link to="/news" Tag="a">News页面</router-link> |
    <router-link to="/login" Tag="a">Login</router-link>
  </div>
  <router-view />
</template>

然后你就可以npm run serve跑起你的项目来看看了;

在这里插入图片描述

可以看到依据Tag属性的规定是多了4个a标签的,我们点进去News看下,

在这里插入图片描述

URL依据router-link的to属性的值改变了,页面正确的跳转.
到此基本的路由配置就完成了.

二、路由懒加载技术

把不同的路由对应的组件分离,仅当某路由被触发时才会加载对应组件,会更加高效,并且第三方 & 底层支撑 & 公共App 除外, 其他的Vue页面组件都在服务器,随用随请求,确保对页面的影响最小.

其实就是改变一下router/index.js里对各个组件的引入方法啦…
通过箭头函数的方法进行.


const routes = [
  {
    path: '/about',
    name: 'About',
    component: () => import('../views/About.vue')
    //直接在这里引入了About并且赋值给了component;
  },
  {
    path: '/news',
    name: "News",
    component: () => import("../views/News.vue")
        //直接在这里引入了About并且赋值给了component;
  },
  {
    path: '/login',
    name: 'Login',
    component: () => import('../views/Login.vue')
        //直接在这里引入了About并且赋值给了component;
  },
]

三、路由嵌套

我们的子页面不能没有链接吧? 用户通过App.vue进入了一个子页面,还应该有下属的链接将他们引导到其他页面,这需要路由嵌套技术.

说简单些,就是在父页面的路由里规定子页面的路由,比如在News.vue的路由里规定NewsChild-1.vue的路由.


//这是缩减过的router/index.js;
const routes = [
  {
    path: '/news',
    name: "News",
    component: () => import("../views/News.vue"),
    children: [
      {
        path: 'NewsChild-1', 
        //子路由不用在前面写"/"和上一层路径,
        //但其实解析是是会加上的;
        //规定URL出现/News/NewsChild-1时,
        //跳转至component对应的页面;
        component: () => import("../views/NewsChild-1"),
      }
    ]
  },
]

这样就规定了在News页面出现URL改变后应当进行的操作.
自然,我们还得规定News页面下要怎样改变URL,进入News.vue进行操作.


<!-- 这是News.vue; -->
<template>
  <h1>News</h1>
  //规定在被触发时URL增加/News/NewsChild-1;
  <router-link to="/News/NewsChild-1">NewsChild-1</router-link>
  <router-view></router-view>
</template>

然后来看下渲染出的页面吧:

在这里插入图片描述

点击链接NewsChild-1:

在这里插入图片描述

URL变为/News/NewsChild-1,依据router-link的to属性值.
大可再在children数组里多嵌套几个页面组件,如法炮制即可.

四、动态路由

很多时候页面需要跳转到哪里是不能由我们写程序的来确定的,这就需要程序按照需求去自己决定,让路由得以动态改变.

1.动态路由配置

说简单些,我们不把[to需要增加的URL]和[path判定跳转的URL]写死就好了,把URL里需要经常变化的部分,利用v-bind与export default中的data数据互通起来,让URL跟随数据变动.


//这是在router/index.js
import { createRouter, createWebHashHistory } from 'vue-router';

const routes = [
  {
    path: '/',
    name: 'Home',
    component: () => import('../views/Home.vue'),
  },
  {
  //我们在此处也不要把path的值写死;
    path: '/user/:userId',
    name: 'User',
    component: () => import('../views/User.vue'),
  }
];

<!-- 这是在App.vue里 -->
<template>
  <div id="app">
    <router-link to="/">Home</router-link> |
    <router-link to="/about">About</router-link> |
    <!-- 在此处使用v-bind将userId数据调用; -->
    <!-- 将/user/作为字符串拼接给userId -->
    <router-link v-bind:to="'/user/' + userId">用户</router-link>
  </div>
  <router-view />
</template>
<script>
export default {
  name: "app",
  data() {
    return {
    //在此处设定userId的数据为baixia;
      userId: "baixia",
    };
  },
};
</script>

来看下效果:

在这里插入图片描述

接下来点击用户:

在这里插入图片描述

URL成功拼接了了data里的数据UserId,即baixia.

2.动态路由传参

动态路由也是Vue传递数据的方式之一,利用$route来进行Vue页面组件(即vue文件)间的通信.
先来认识两个变量:
$router: index.js末尾利用createRouter创建的路由对象
$route: 当前正处于活跃状态下的路由对象,其中有一个params属性,全称parameters,利用它,可以取到我们URL里使用v-bind传的值.

比如User.vue需要获取App.vue的data中的userId数据:


<!-- 在App.vue中(发方) -->
<template>
  <div id="app">
    <router-link v-bind:to="'/user/' + userId">用户</router-link>
  </div>
  <router-view />
</template>
<script>
export default {
  name: "app",
  data() {
    return {
      userId: "baixia",
    };
  },
};
</script>

//在user.vue中(收方)
export default {
    name:"user",
    computed: {
        userId() {
            return this.$router.params.userId
//将this.$router.param.userId的值,
//即App.vue的router-link里传入的userId返回,
//以作为计算属性userID()的值
        }
    }
}

User.vue里为了获取用户信息而使用的params,其获取哪个属性依赖于index.js里的path,的如果path:'/user/:abc',那么User.vue的< script>里应当为:


export default {
    name:"user",
        computed: {
            userId() {
            //这里也应为获取abc属性;
                return this.$router.params.abc
           }
        }
}

总结

昨天拿到通知,说咱HTML5设计大赛拿了一等奖…
就挺离谱的,做的算是中规中矩吧个人感觉.这几天要赶赶Vue的进度了.

到此这篇关于深入理解Vue-cli4路由配置的文章就介绍到这了,更多相关Vue-cli4路由配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 深入理解Vue-cli4路由配置

本文链接: https://lsjlt.com/news/128679.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 深入理解Vue-cli4路由配置
    目录前言-vue路由一、最基本路由配置1.配置router/index.js2.配置App.vue二、路由懒加载技术三、路由嵌套四、动态路由1.动态路由配置2.动态路由传参总结前言-...
    99+
    2024-04-02
  • 深入理解Think PHP路由配置
    深入理解Think PHP路由配置,需要具体代码示例 Think PHP 是一款基于MVC模式的PHP框架,其路由配置是框架中非常重要的一部分。了解和掌握路由配置可以帮助开发者更好地组...
    99+
    2024-04-02
  • Vue路由的懒加载深入详解
    目录一、概念二、代码实现三、打包文件的解析一、概念 官方描述: 当打包构建应用时,Javascript包会变得非常大,影响页面加载。 如果我们能把不同路由对应的组件分割成功不同的代码...
    99+
    2022-12-26
    Vue路由懒加载 Vue懒加载
  • vue如何配置路由
    在vue中配置路由的方法:1.新建项目,引入vue和vue-router;2.使用Vue.use方法注册路由;3.执行代码配置路由;具体步骤如下:首先,在新建一个html项目,并在项目中引入vue和vue-router;import Vue...
    99+
    2024-04-02
  • Vue路由传参及props解耦深入分析
    目录一、路由传参query传参query配合声明式导航query配合编程式导航query传参的特点params传参路径使用参数占位时路径不使用占位时二、props解耦1.props布...
    99+
    2024-04-02
  • Vue前端路由hash与history差异深入了解
    目录前言简单介绍 Vue RouterVue Router 实现原理Hash简述特点设置history简述设置特点生产环境问题及解决开发环境- historyApiFallback总...
    99+
    2024-04-02
  • 分析Vue-Router路由与配置
    这篇文章主要介绍“分析Vue-Router路由与配置”,在日常操作中,相信很多人在分析Vue-Router路由与配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”分析Vue-...
    99+
    2024-04-02
  • React Native自定义路由管理的深入理解
    目录1、自定义路由2、Tab导航3、数据回传总结1、自定义路由 众所周知,不管是在原生Android还是iOS,它们都有一个默认的路由路由栈管理类。由于React Native官方...
    99+
    2024-04-02
  • 如何理解react路由Link配置
    如何理解react路由Link配置,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、Link的to属性(1)放置路由路径(2)放置对象,且为规定格式{pathn...
    99+
    2023-06-25
  • 深入理解阿里云路由器服务器
    随着云计算技术的发展,越来越多的企业开始采用云计算解决方案。其中,阿里云路由器服务器是一种高效、可靠的云计算服务器。本文将深入探讨阿里云路由器服务器的特性和应用。 阿里云路由器服务器是阿里云推出的一种高性能、高可用的云服务器产品。它具有高性...
    99+
    2023-12-15
    阿里 路由器 服务器
  • vue-route路由管理怎么安装与配置
    这篇文章主要介绍“vue-route路由管理怎么安装与配置”,在日常操作中,相信很多人在vue-route路由管理怎么安装与配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • 路由器技术深入剖解(3)
    路由器工作原理 1、基本原理 要实 现 网 络中通信节点彼此之间的通信,首先必须给每个节点分配一个唯一的IP地址。路由器应该至少有两个网络端口,分别连接LAN或者WAN子网上,每个端口必须具有一个唯一的IP地址,并且要求与所连接IP子网的网...
    99+
    2023-01-31
    路由器 技术
  • Vue中的路由配置项meta使用解析
    目录Vue路由配置项meta使用这里简单的举两个例子Vue路由中的meta问题meta (元数据)Vue路由配置项meta使用 meta简单来说就是路由元信息 也就是每个路由身上携带...
    99+
    2022-11-13
    Vue路由 Vue路由配置 Vue meta使用
  • vue-route路由管理的安装与配置方法
    介绍 Vue Router 是 Vue.js官方的路由管理器。它和 Vue.js 的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有: 嵌套的路由/视图表 ...
    99+
    2024-04-02
  • vue动态路由配置及路由传参的示例分析
    这篇文章主要介绍了vue动态路由配置及路由传参的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。动态路由:  当我们很多个页面或者组件...
    99+
    2024-04-02
  • react 路由Link配置详解
    1、Link的to属性 (1)放置路由路径 (2)放置对象,且为规定格式 {pathname:"/xx",search:'?键值对',hash:"#xxx",state:{...
    99+
    2024-04-02
  • Think PHP路由配置详解
    Think PHP是一款基于PHP语言开发的开源框架,它提供了强大的路由配置功能,可以帮助开发者更好地管理网站或应用的路由规则。本文将详细解释Think PHP中路由配置的相关知识,并...
    99+
    2024-04-02
  • Vue路由配置方法详细介绍
    目录手动配置Vue-router环境组件内部跳转路由与传参useRouter,useRoute手动配置Vue-router环境 1、下载包: npm i vue-router --s...
    99+
    2024-04-02
  • 揭秘VUE路由动态加载的幕后机制:深入探索路由管理的艺术
    Vue路由动态加载是一种通过JavaScript代码在运行时加载路由的方式,与传统的静态路由不同,动态加载路由可以更灵活地响应用户操作或数据变化,从而实现更复杂的路由管理。 动态加载路由的原理 Vue路由动态加载路由的原理主要分为以下几...
    99+
    2024-02-13
    Vue 路由 动态加载 路由管理 前端开发
  • vuejs路由的传参及路由props配置详解
    目录前言方式1-使用query方式命名路由方式2-路由的params参数query与params的区别路由的props配置路由配置的布尔模式路由配置的对象模式路由配置函数模式总结前言...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作