当前位置: 首页 > news >正文

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建

1、前期准备

我们的前期的准备是搭建好Node.js,测试:

node -v
npm -v

2、利用Vue-cli来构建spa项目

2.1、什么是Vue-cli

        Vue CLI 是一个基于 Vue.js 的官方脚手架工具,用于自动生成vue.js+webpack的项目模板,它可以帮助开发者快速搭建 Vue.js 项目的基础结构,并提供了一系列的开发工具和配置选项。Vue CLI 提供了命令行界面和图形化界面两种方式,开发者可以根据自己的喜好选择使用。使用 Vue CLI,可以轻松进行项目初始化、管理依赖、开发调试、构建打包等常用开发任务,简化了 Vue.js 应用的开发流程,提高了开发效率。

        创建命令如下:           

 vue init webpack xxx

  

  • xxx 为自己创建项目的名称
  • 必须先安装vue,vue-cli,webpack,node等一些必要的环境

2.2、安装vue-cli

Win + R CMD 进入命令窗口输入npm install -g vue-cli命令

 输入npm install webpack -g

安装成功后,会出现如下文件:

  • vue
  • vue.cmd 
  • vue-init
  • vue-init.cmd
  • vue-list
  • vue-list.cmd


安装完成之后打开命令窗口并输入 vue -V(注意这里是大写的“V”),如果出现相应的版本号,则说明安装成功。

2.3、使用脚手架vue-cli构建项目

创建项目骨架:

  1. 找到一个放这个骨架的路径
  2. 进入目录CMD进入命令窗口
  3.  vue init webpack xxx :xxx为你的项目名,项目名不能用中文或大写字母,然后终端会出现“一问一答”模式
  4. cmd命令行窗口显示中文乱码,是cmd命令行窗口字符编码不匹配导致

            修改cmd窗口字符编码为UTF-8,命令行中执行:chcp 65001

            切换回中文:chcp 936

            这两条命令只在当前窗口生效,重启后恢复之前的编码。
  5. “一问一答”模式

    1. Project name:项目名,默认是输入时的那个名称spa1,直接回车

    2. Project description:项目描述,直接回车

    3. Author:作者,随便填或直接回车

    4. Vue build:选择题,一般选第一个

      1. 运行加编译,官方推荐,就选它了

      2. 仅运行时,已经有推荐了就选择第一个了

    5. Install vue-router:是否需要vue-router

      1. Y选择使用,这样生成好的项目就会有相关的路由配置文件

    6. Use ESLint to lint your code:是否用ESLint来限制你的代码错误和风格。

      1. 如果你是新手一般填N,但实际项目中一般都会使用,这样多人开发也能达到一致的语法

    7. Set up unit tests:是否安装单元测试;N

    8. Setup e2e tests with Nightwatch?:是否安装e2e测试;N

    9. Should we run `npm install` for you after the project has been created? (recommended) (Use arrow keys)

      1. 第一项“Yes, use NPM”是否使用npm install安装依赖

  6. 全部选择好回车就进行了生成项目,出现如下内容表示项目创建完成,我们进行等待就行

  7. 运行完上面的命令后,我们需要将当前路径改变到SPA这个文件夹内

    1. cd gq_spa:改变路径到gq_spa文件夹下

    2. npm install:安装所有项目需要的npm模块

  8. 启动并访问项目

    1. 输入npm run dev

    2. 等待启动

  9. 复制上面的地址http://localhost:8080/,进入浏览器访问

  10. 最后利用我们的编程软件进行添加

2.4、vue项目结构说明

  1. build文件夹:这个文件夹主要是进行webpack的一些配置
    1. webpack.base.conf.js:webpack基础配置,开发环境,生产环境都依赖
    2. webpack.dev.conf.js:webpack开发环境配置
    3. webpack.prod.conf.js:webpack生产环境配置
    4. build.js:生产环境构建脚本      
    5. vue-loader.conf.js:此文件是处理.vue文件的配置文件
  2. config文件夹
    1. dev.env.js:配置开发环境 
    2. prod.env.js:配置生产环境 
    3. index.js:这个文件进行配置代理服务器,例如:端口号的修改 
  3. node_modules文件夹:存放npm install时根据package.json配置生成的npm安装包的文件夹
  4. src文件夹:源码目录(开发中用得最多的文件夹) 
    1. assets:共用的样式、图片 
    2. components:业务代码存放的地方,里面分成一个个组件存放,一个页面是一个组件,一个页面里面还会包着很多组件
    3.  router:设置路由   
    4.  App.vue:vue文件入口界面 
    5. main.js:对应App.vue创建vue实例,也是入口文件,对应webpack.base.config.js里的入口配置  
  5. static文件夹:存放的文件不会经过webpack处理,可以直接引用,例如swf文件如果要引用可以在webpack配置对swf后缀名的文件处理的loader,也可以直接将swf文件放在这个文件夹引用 
  6. package.json:这个文件有两部分是有用的:scripts 里面设置命令以及在dependencies和devDependencies中,分别对应全局下载和局部下载的依赖包

   

3、什么是Vue文件

        vue 文件,是一个自定义的文件类型,用类似HTML的语法描述一个Vue组件。每个.vue文件包含三种类型的顶级语言块 <template>, <script> 和 <style>。这三个部分分别代表了 html,js,css

二、SPA项目使用路由

我们以前的步骤:

  1. 确保引入Vue.vue-router的js依赖
  2. 首先需要定义组件(就是展示不同的页面效果)
  3. 需要将不同的组件放入一个容器中(路由集合)
  4. 将路由集合组装成路由器
  5. 将路由挂载到Vue实例中
  6. 定义锚点
  7. 跳转

现在的步骤:

1、依赖

确定我们的挂在依赖,在我们的main.js里面,路由也已经挂载了,不用管了

2、定义组件

components文件夹里面,新建你需要的vue文件

3、定义容器

vue文件里面的<template>里面,有且只能有一个根节点

<script>
</script><template><div class="index">这是网站的首页部分</div>
</template><style scoped></style>
<script>
</script><template><div class="home">这是网站的介绍</div>
</template><style scoped></style>

4、组装成路由器

<script>
export default {name: 'Index',data() {return {msg: '欢迎来到网站的首页'}}
}
</script><template><div class="index">这是网站的首页部分</div>
</template><style scoped></style>
<script>
export default {name: 'home',data() {return {msg: '欢迎来到网站的介绍部分'}}
}
</script><template><div class="home">这是网站的介绍</div>
</template><style scoped></style>

5、定义路由关系

router文件夹里面的index.js文件里面定义路由关系

import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Index from '@/components/Index'
import Home from '@/components/Home'Vue.use(Router)export default new Router({routes: [{path: '/',name: 'HelloWorld',component: HelloWorld}, {path: '/Home',name: 'Home',component: Home}, {path: '/Index',name: 'Index',component: Index}]
})

定义自己的写的一个关系

6、定义锚点

App.vue里面定义锚点

<template><div id="app"><img src="./assets/logo.png"><br><router-link to="/Index">首页</router-link><router-link to="/Home">介绍</router-link><router-view/></div>
</template><script>
export default {name: 'App'
}
</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>

7、测试

三、SPA项目使用嵌套路由

1、最终展示效果

2、步骤

2.1、定义锚点

选择你需要定义的页面定义锚点

2.2、组装、定义容器

错不多的步骤定义好容器,组装需要的内容

2.3、定义关系

添加自己写的关系

我们不能直接在后面添加,需要用children数组来添加到指定的页面,不然展示不了我们需要的效果

2.4、测试

最后就展示我们的一个效果了

分享就到这里,感谢大家翻阅。

欢迎大家在评论区里讨论!!!

相关文章:

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试&#xff1a; node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;它可以帮助开发者…...

Excel 通过条件格式自动添加边框

每录入一次数据就需要手动添加一次边框&#xff0c;非常麻烦&#xff0c;这不是我们想要的。 那么有没有办法&#xff0c;在我们录入数据后&#xff0c;自动帮我们加上边框呢&#xff1f; 选中要自动添加边框的列&#xff0c;然后按箭头流程操作 ↓ ↓ ↓ ↓...

mysql 备份和还原 mysqldump

因window系统为例 在mysql安装目录中的bin目录下 cmd 备份 备份一个数据库 mysqldump -uroot -h hostname -p 数据库名 > 备份的文件名.sql 备份部分表 mysqldump -uroot -h hostname -p 数据库名 [表 [表2…]] > 备份的文件名.sql ## 多个表 空格隔开&#xff0c;中间…...

ELK日志分析系统+ELFK(Filebeat)

本章结构&#xff1a; 1、ELK日志分析系统简介 2、Elasticsearch介绍&#xff08;简称ES&#xff09; 3、Logstash介绍 4、Kibana介绍 5、实验&#xff0c;ELK部署 一、ELK日志分析系统简介 ELK平台是一套完整的日志集中处理解决方案&#xff0c;将 ElasticSearch、Logst…...

ULID 在 Java 中的应用: 使用 `getMonotonicUlid` 生成唯一标识符

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…...

实用的嵌入式编码技巧:第三部分

每个触发器都有两个我们在风险方面违反的关键规格。“建立时间”是时钟到来之前输入数据必须稳定的最小纳秒数。“保持时间”告诉我们在时钟转换后保持数据存在多长时间。 这些规格因逻辑设备而异。有些可能需要数十纳秒的设置和/或保持时间&#xff1b;其他人则需要少一个数量…...

8个很棒的Vue开发技巧

1.路由参数解耦 通常在组件中使用路由参数&#xff0c;大多数人会做以下事情。 export default { methods: {getParamsId() {return this.$route.params.id} } } 在组件中使用 $route 会导致与其相应路由的高度耦合&#xff0c;通过将其限制为某些 URL 来限制组件的灵活性。…...

Python - 小玩意 - 文字转语音

import pyttsx3 from tkinter import *def recognize_and_save():try:say pyttsx3.init()rate say.getProperty(rate) # 获取当前语速属性的值say.setProperty(rate, rate - 20) # 设置语速属性为当前语速减20text text_var.get()# 语音识别say.say(text)say.runAndWait()…...

聚焦数据库和新兴硬件的技术合力 中科驭数受邀分享基于DPU的数据库异构加速方案

随着新型硬件成本逐渐降低&#xff0c;充分利用新兴硬件资源提升数据库性能是未来数据库发展的重要方向之一&#xff0c;SIGMOD、VLDB、CICE数据库顶会上出现越来越多新兴硬件的论文和专题。在需求侧&#xff0c;随着数据量暴增和实时性的要求越来越高&#xff0c;数据库围绕处…...

哨兵模式(sentinel)

为什么需要哨兵模式 redis的主从复制模式能够缓解“读压力”&#xff0c;但是存在两个明显问题。 主节点发生故障&#xff0c;进行主节点切换的过程比较复杂&#xff0c;需要人工参与&#xff0c;导致故障恢复时间无法保障主节点通过主从复制模式将读压力分散出去&#xff0c…...

b站老王 自动驾驶决策规划学习记录(十二)

自动驾驶之速度规划详解&#xff1a;SL与ST迭代 上一讲&#xff1a;b站老王 自动驾驶决策规划学习记录&#xff08;十一&#xff09; 接着上一讲学习记录b站老王对自动驾驶规划系列的讲解 参考视频&#xff1a; 自动驾驶决策规划算法第二章第七节(上) 速度规划详解:SL与ST迭代…...

服务器租用机房机房的类型应该如何选择

服务器租用机房机房的类型应该如何选择 1.单电信机房 单电信服务器机房业务模式比较固定&#xff0c;访问量也不是很大&#xff0c;适合新闻类网站或政务类网站。如果网站的PV流量持续增加&#xff0c;建议后期采用租赁CDN的方式解决非电信用户访问网站速度过慢的问题。 2.双线…...

大数据运维一些常见批量操作命令

大数据运维中&#xff0c;批量操作是一项常见的任务。在使用flume进行数据采集的过程中&#xff0c;有时会出现故障导致采集停止&#xff0c;此时积累了大量的文件。如果想要将这些文件迁移到新的目录&#xff0c;直接使用"mv"命令可能会因为文件数目过多而报错。为了…...

测试人职场生存必须避开的5个陷阱

在互联网职场的工作发展道路上&#xff0c;软件测试人员其实在公司中也面临着各种各样的职场陷阱&#xff0c;有些可能是因为项目业务不熟练造成的&#xff0c;有些可能是自身技术能力不足导致的...等等。软件测试入门相对来说比较容易些&#xff0c;但是想要在测试行业长久发展…...

力扣538 补9.18

538.把二叉搜索树转换为累加树 可以做&#xff0c;主要还是分类讨论并找规律。 当前结点如果是左节点的话&#xff0c;root.valroot.valpre.valdfs(root.right); 如果是右结点的话&#xff0c; root.valpre.val-preval-dfs(root.left); 都和前一个结点有关系&#xff0c;如…...

[Linux入门]---Linux编译器gcc/g++使用

文章目录 1.背景知识2.gcc如何完成编译运行工作预处理&#xff08;进行宏替换&#xff09;编译&#xff08;生成汇编&#xff09;汇编&#xff08;生成机器可识别代码&#xff09;链接&#xff08;生成可执行文件&#xff09; 3.函数库动态库静态库动静态库的区别 4.gcc选项 1.…...

[Git入门]---gitee注册及代码提交

文章目录 1.Gitee是什么2.gitee注册3.git工具及图形化界面工具安装4.gitee仓库创建5.进行本地仓库与远端gitee仓库的链接6.git三板斧addcommitpush 7.gitee提交代码常见问题 1.Gitee是什么 gitee是基于git代码托管和研发协作的国内平台&#xff0c;在上面可以托管个人或公司代…...

企业架构LNMP学习笔记46

PHP测试连接代码&#xff1a; php代码测试使用memcached&#xff1a; 示例代码&#xff1a; <?php //实例化类 $mem new memcached(); //调用连接memcached方法 注意连接地址和端口号 $mem->addServer(192.168.17.114,11211); //存数据 var_dump($mem->set(name,l…...

ELFK之zookeeper+kafka

目录 kafkazookeeper的系统架构 Zookeeper 一、zookeeper概述 二、zookeeper特点 三、zookeeper选举机制 四、应用场景 五、zookeeper实验实例 Kafka 一、概述 为什么需要消息队列(MQ) 使用消息队列的好处 消息队列的两种模式 Kafka 定义 二、Kafka 的特性 三、Ka…...

ECharts

ECharts是一款基于JavaScript的数据可视化图表库&#xff0c;提供直观&#xff0c;生动&#xff0c;可交互&#xff0c;可个性化定制的数据可视化图表。ECharts 提供了常规的折线图、柱状图、散点图、饼图、K线图&#xff0c;用于统计的盒形图&#xff0c;用于地理数据可视化的…...

jsoup框架技术文档--java爬虫--架构体系

阿丹&#xff1a; 在学习以及认知使用一个新技术之前一定要搞清楚有关框架的架构体系。了解一下该技术的底层会对后面编写代码以及寻找报错都是很有用处的&#xff0c;前期做的铺垫多一点&#xff0c;后期开发的时候就很方便。 jsoup框架的关键组件 JSoup框架的关键组件主要包…...

OpenStack创建云主机并连接CRT

文章目录 OpenStackT版创建云主机并连接CRT命令行操作&#xff08;1&#xff09;创建镜像&#xff08;2&#xff09;创建实例&#xff08;3&#xff09;创建网络创建内网创建外网 &#xff08;4&#xff09;创建安全组&#xff08;5&#xff09;创建路由&#xff08;6&#xff…...

linux-sed命令

目录 1.linux-shell sed获取某一段字符串 2.linux-shell shell脚本中 sed -n取出某一行赋给一个变量 3.linux-shell sed查询某一行 1.linux-shell sed获取某一段字符串 如果要获取的是某一段字符串&#xff0c;可以在 sed 命令中使用正则表达式来指定需要获取的字符串。例如…...

Elasticsearch:什么是向量和向量存储数据库,我们为什么关心?

Elasticsearch 从 7.3 版本开始支持向量搜索。从 8.0 开始支持带有 HNSW 的 ANN 向量搜索。目前 Elasticsearch 已经是全球下载量最多的向量数据库。它允许使用密集向量和向量比较来搜索文档。 矢量搜索在人工智能和机器学习领域有许多重要的应用。 有效存储和检索向量的数据库…...

JOSEF约瑟 剩余电流继电器PFR-5 PFE-W-20 国产化改造ZLR-G81 ZCT-45

系列型号&#xff1a; PFR-003剩余电流继电器 PFR-03剩余电流继电器 PFR-5剩余电流继电器 PFR-W-105互感器 PFR-W-140互感器 PFR-W-20互感器 PFR-W-210互感器 PFR-W-30互感器 PFR-W-35互感器 PFR-W-70互感器 一、用途 PFR剩余电流继电器&#xff08;以下简称继电器…...

分别用Python和Go实现对文件夹及其子文件夹里的文件进行批量重命名

文章目录 问题阐述上代码结果如何 问题阐述 最近在继续提高自己的go技术时&#xff0c;从网上一些平台获取到了一些学习资料&#xff0c;然后下载到本地后&#xff0c;文件的命名是真的像衣托答辩&#xff1a; 除了上述的文件&#xff0c;还有一mol多神奇的命名&#xff0c;害…...

redis深度历险 千帆竞发 —— 分布式锁

分布式应用进行逻辑处理时经常会遇到并发问题。 比如一个操作要修改用户的状态&#xff0c;修改状态需要先读出用户的状态&#xff0c;在内存里进行修改&#xff0c;改完了再存回去。如果这样的操作同时进行了&#xff0c;就会出现并发问题&#xff0c;因为读取和保存状态这两个…...

C#根据中文首字母排序

第一种方式&#xff1a; 这种方式会受制于服务器的区域和语言设置。 1.首先添加一个排序类ChineseNameComparer public class ChineseNameComparer : IComparer<string> {public int Compare(string x, string y){if (x null || y null)return 0;var xFirstChar x.Su…...

仪表基础知识培训

压力传感器:E+H PMX5x/FMX5x 一、安装:安装注意事项: 1、水平安装时仪表的呼吸孔(1)需要向下安装,并远离污染物。 2、请勿用坚硬的物体擦拭或接触膜片。 3、请勿安装在水泵的入口和搅拌叶附近 二、供电、接线、信号、:二线制,仪表输出4-20mA 三、量程:设置最大最小量程…...

无涯教程-JavaScript - PI函数

描述 PI函数返回数字3.14159265358979,数学常数pi,精确到15位数字。 语法 PI ()争论 PI函数语法没有参数。 适用性 Excel 2007,Excel 2010,Excel 2013,Excel 2016 Example JavaScript 中的 PI函数 - 无涯教程网无涯教程网提供描述PI函数返回数字3.14159265358979,数学常…...

怎么做下载类网站/广州网络推广公司

是“Block Started bySymbol”的缩写&#xff0c;意为“以符号开始的块”。 BSS是Unix链接器产生的未初始化数据段。其他的段分别是包含程序代码的“text”段和包含已初始化数据的“data”段。BSS段的变量只有名称和大小却没有值。此名后来被许多文件格式使用&#xff0c;包括P…...

河南省建设厅网站103号文件/seo网站推广排名

本文以8.1.0为例 下载地址 http://skywalking.apache.org/downloads/ 解压 配置 config目录 配置文件 config/application.yml # 把storage的selector修改一下&#xff0c;默认是h2 # 为了方便查看数据&#xff0c;这里使用mysql # 同时要把mysql配置项&#xff0c;都要改…...

张槎网站建设/网站seo诊断技巧

作者&#xff1a;Ruheng http://www.jianshu.com/p/c1d6a294d3c0 本文以HTTP请求和响应的过程来讲解涉及到的相关知识点。 第一 HTTP请求和相应步骤 图片来自&#xff1a;理解Http请求与响应http://android.jobbole.com/85218/ 以上完整表示了HTTP请求和响应的7个步骤&#x…...

阿里云二级域名网站怎么建设/网址导航下载到桌面

最近&#xff0c;用Python脚本提取&#xff0c;在基因号已知&#xff0c;位置已知条件下&#xff0c;相对应位置的基因序列时发现&#xff0c;这样很简单但是很实用的脚本&#xff0c;在网上却比较难找。而且&#xff0c;能被找到的脚本&#xff0c;相对于具有初级编程能力的人…...

如何做网站弹窗/网络营销工具的特点

项目的第一个版本出来了&#xff0c;要做个安装包&#xff0c;之前没有做过&#xff0c;网上看看贴&#xff0c;写了一个&#xff0c;总结下&#xff0c;根据本项目的需要&#xff0c;没有写的太复杂&#xff0c;可能还不是很完善&#xff0c;仅作参考。 首先在打开 VS2010 …...

wordpress淘宝联盟插件/免费seo推广公司

在GitHub上新建一个Repository&#xff1a; 新建仓库之后是这个界面&#xff08;基本上已经清楚地告诉了我们该怎么做&#xff0c;按照步骤进行就可以&#xff09;&#xff1a; 在本地项目的根目录下打开控制台添加一个READEME文件&#xff1a;echo "# test" >&…...