首页 > 其他分享 >​ Vue Router

​ Vue Router

时间:2024-05-02 21:33:56浏览次数:25  
标签:Vue App router vue import Router 路由

Vue Router是Vue.js官方的路由管理器(路径跳转)。它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌。包含的功能有:

  • 嵌套的路由/视图表

  • 模块化的、基于组件的路由配置

  • 路由参数、查询、通配符

  • 基于Vue.js过渡系统的视图过渡效果

  • 细粒度的导航控制

  • 带有自动激活的CSS class的链接

  • HTML5历史模式或hash模式,在IE9中自动降级

  • 自定义的滚动条行为

  1. 安装
    ​ 基于第一个vue-cli进行测试学习;先查看node_modules中是否存在 vue-router
     vue-router 是一个插件包,所以我们还是需要用 npm/cnpm 来进行安装的。打开命令行工具,进入你的项目目录,输入下面命令。
npm install vue-router --save-dev

安装完之后去node_modules路径看看是否有vue-router信息 有的话则表明安装成功。

  1. vue-router demo实例
    将之前案例由vue-cli生成的案例用idea打开

清理不用的东西 assert下的logo图片 component定义的helloworld组件 我们用自己定义的组件

  1. 清理代码 以下为清理之后的代码 src下的App.vue 和main.js以及根目录的index.html
    这三个文件的关系是 index.html 调用main.js 调用App.vue

index.html:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>myvue</title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>


main.js:

import Vue from 'vue'
import App from './App'
import router from './router' //自动扫描里面的路由配置

Vue.config.productionTip = false

new Vue({
  el: '#app',
  //配置路由
  router,
  components: { App },
  template: '<App/>'
})


App.vue:


<template>
  <div id="app">
    <img src="./assets/logo.png">
    <h1>迪师傅</h1>

    <router-link to="/main">首页</router-link>
    <router-link to="/content">内容页</router-link>
    <router-link to="/kuang">Kuang</router-link>
    <router-view></router-view>

  </div>
</template>

<script>

export default {
  name: 'App',
  components: {
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

  1. 在components目录下创建一个自己的组件Content,Test,Main(这两个和Content内容一样的就不放示例代码了

Content.vue

<template>
  <h1>内容</h1>
</template>

<script>
    export default {
        name: "Content"
    }
</script>

<style scoped>

</style>


  1. 安装路由,在src目录下,新建一个文件夹 : router,专门存放路由 index.js(默认配置文件都是这个名字)
import Vue from "vue";
import VueRouter from "vue-router";
import Content from "../components/Content";
import Main from "../components/Main";
import Kuang from "../components/Kuang";

//安装路由
Vue.use(VueRouter);

//配置导出路由
export default new VueRouter({
  routes: [
    {
      //路由路径
      path: '/content',
      name: 'content',
      //跳转的组件
      component: Content
    },
    {
      //路由路径
      path: '/main',
      name: 'main',
      //跳转的组件
      component: Main
    },
    {
      //路由路径
      path: '/kuang',
      name: 'kuang',
      //跳转的组件
      component: Kuang
    }
  ]
})



  1. 在main.js中配置路由

main.js:

import Vue from 'vue'
import App from './App'
import router from './router' //自动扫描里面的路由配置

Vue.config.productionTip = false

new Vue({
  el: '#app',
  //配置路由
  router,
  components: { App },
  template: '<App/>'
})


  1. 在App.vue中使用路由

App.vue:

<template>
  <div id="app">
    <img src="./assets/logo.png">
    <h1>迪师傅</h1>

    <router-link to="/main">首页</router-link>
    <router-link to="/content">内容页</router-link>
    <router-link to="/kuang">Kuang</router-link>
    <router-view></router-view>

  </div>
</template>

<script>

export default {
  name: 'App',
  components: {
  }
}
</script>

<style>
#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>


启动测试一下 : npm run dev

 npm run dev

项目结构图&运行效果图

import Vue from "vue";
import VueRouter from "vue-router";
import Content from "../components/Content";
import Main from "../components/Main";
import Kuang from "../components/Kuang";
import ikun from "../components/Ikun";
//安装路由
Vue.use(VueRouter);

//配置导出路由
export default new VueRouter({
  // mode: 'history',
  routes: [
    {
      //路由路径
      path: '/content',
      name: 'content',
      //跳转的组件
      component: Content
    },
    {
      //路由路径
      path: '/main',
      name: 'main',
      //跳转的组件
      component: Main
    },
    {
      //路由路径
      path: '/kuang',
      name: 'kuang',
      //跳转的组件
      component: Kuang
    },
    {
      //路由路径
      path: '/ikun',
      name: 'ikun',
      //跳转的组件
      component: ikun
    }
  ]
})


 mode: 'history',

标签:Vue,App,router,vue,import,Router,路由
From: https://www.cnblogs.com/hongpeiyu/p/18170596

相关文章

  • Vue入门到关门之组件
    一、组件1、什么是组件在Vue.js中,组件是构建用户界面的可重用和独立的模块。每个Vue组件都封装了自己的模板、逻辑和样式,使得代码可以更加模块化、可维护性更高。通过组件化,你可以将界面拆分成独立的、可复用的部分,每个部分都有自己的功能和样式,这样可以更容易地管理复杂的界面,......
  • Vue入门到关门之第三方框架elementui
    1、什么是ElementUI?ElementUI是一个基于Vue.js的组件库,它提供了丰富的UI组件和一套完整的解决方案,用于快速构建现代化的Web应用程序。ElementUI的目标是帮助开发者快速构建出美观、易用的界面,并提供了丰富的组件,包括但不限于按钮、表单、表格、对话框、菜单、导航、布......
  • Vue入门到关门之Vue项目工程化
    一、创建Vue项目1、安装node环境官网下载,无脑下一步,注意别放c盘就行Node.js—RunJavaScriptEverywhere(nodejs.org)需要两个命令npm---->pipnode--->python装完检查一下,helloworld检测,退出crtl+c2、搭建vue项目环境装cnpm这个包,下载东西会快很多,装模块......
  • VUE
    VUE(1)介绍VUE是渐进式框架可以一点一点地使用它,只用一部分,也可以整个工程都使用它Vue特点易用通过HTML、CSS、JavaScript构建应用灵活不断繁荣的生态系统,可以在一个库和一套完整框架之间自如伸缩。高效20kBmin+gzip运行大小超快虚拟DOM最省心的优化(2)引入vu......
  • Vue package-lock.json的作用
    package-lock.json的作用 "node_modules/@aashutoshrathi/word-wrap":{"version":"1.2.6","resolved":"https://registry.npmmirror.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz",&......
  • 前端 Vue webpack配置之 webpack.config.js 文件配置
     Webpack在执行的时候,除了在命令行传入参数,还可以通过指定的配置文件来执行。默认情况下,会搜索当前目录的 webpack.config.js 文件,这个文件是一个node.js模块,返回一个json格式的配置信息对象,或者通过 --config 选项来指定配置文件。.输入命令:webpack,即可按照webpack.c......
  • 前端 Vue-cli中 vue.config.js 的配置详解
    Vue-cli3/Vue-cli4 目录结构├──README.md #说明|--dist #打包后文件夹├──babel.config.js #babel语法编译├──package-lock.json├──public #静态文件夹,这类资源将会直接被拷贝,而不会经过webpack的......
  • 前端 Vue yarn.lock文件:详解和使用指南
    yarn.lock文件:详解和使用指南https://www.python100.com/html/38KF796X6BHM.html一、什么是yarn.lock文件yarn.lock文件是一个产生于Yarn0.22及以后版本的文件,它是一个自动生成的锁文件,记录了当前项目的依赖关系,并确保每个依赖的版本都是稳定的,这样可以保证软件包安装的重......
  • vite vue-cli 读取文件原始内容 使用base64内容的文件
    新建文件img.dataurl中存放图片base64<imgclass='img':src='dataurl'alt=''/>importdataurlfrom'./img.dataurl'data(){return{dataurl:dataurl}}vue.config.jsmodule.exports=defineConfig({configureWebpack:{......
  • vue-基础
    渲染的范围<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><p>狂神说Java</p><!--view层模板--><divid="app&quo......