Vue路由和Node.js环境搭建

news2025/2/22 10:29:45

文章目录

  • 一、vue路由
    • 1.1 简介
    • 1.2 SPA
    • 1.3 实例
  • 二、Node.js环境搭建
    • 2.1 Node.js简介
    • 2.2 npm
    • 2.3 环境搭建
      • 2.3.1 下载解压
      • 2.3.2 配置环境变量
      • 2.3.3 配置npm全局模块路径和cache默认安装位置
      • 2.3.4 修改npm镜像提高下载速度
    • 2.4 运行项目

一、vue路由

1.1 简介

Vue 路由是 Vue.js 框架中用于实现单页面应用(SPA)的路由管理工具。它允许你在应用中定义不同的路由,并根据用户的操作动态地切换视图,而无需重新加载整个页面。

在 Vue 路由中,你可以定义路由规则,指定每个路由对应的组件,并在需要时进行导航。Vue 路由提供了一些核心的概念和组件,包括路由器(router)、路由视图(router-view)和路由链接(router-link)。

  • 路由器(router)是 Vue 路由的核心,它负责管理应用的路由规则,并根据用户的导航操作来切换视图。你可以在路由器中定义路由规则,指定每个路由对应的组件,并配置其他参数,如路由守卫、路由模式等。
  • 路由视图(router-view)是用于显示当前路由对应组件的容器。当用户导航到不同的路由时,路由视图会根据当前路由的配置动态地渲染相应的组件。
  • 路由链接(router-link)是用于在应用中生成导航链接的组件。你可以使用路由链接来创建导航菜单、导航按钮等,它会根据配置的路由规则生成正确的链接,并在用户点击时触发路由切换。

1.2 SPA

SPA 是单页面应用(Single Page Application)的缩写。它是一种 Web 应用程序的架构模式,通过在加载初始页面后,动态地更新页面的部分内容,而不是每次用户操作都重新加载整个页面。

单页面应用通过使用 JavaScript 和 AJAX 技术,将应用的不同部分组织为组件,并在用户进行导航时,动态地更新组件的内容,而不需要重新加载整个页面。

客户端 vs. 服务端路由

服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果。当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服务端获得全新的 HTML,然后重新加载整个页面。

然而,在单页面应用中,客户端的 JavaScript 可以拦截页面的跳转请求,动态获取新的数据,然后在无需重新加载的情况下更新当前页面。这样通常可以带来更顺滑的用户体验,尤其是在更偏向“应用”的场景下,因为这类场景下用户通常会在很长的一段时间中做出多次交互。这种方式可以提供更快的用户响应时间,减少不必要的网络请求,同时也提供了更流畅的用户体验。

1.3 实例

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>路由</title>
		<!-- 1、确保引入Vue.vue-router的js依赖 -->
		<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
		<script src="https://cdn.bootcdn.net/ajax/libs/vue-router/2.6.0/vue-router.js"></script>
	</head>
	<body>
		<div id="app">

			<h1>{{msg}}</h1>
			<!-- 6、定义锚点 -->
			<router-link to='/home'>首页</router-link>
			<router-link to='/about'>关于</router-link>
			 <!-- 使用RouterLink组件导航. -->
      <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
       <!-- 通过传入 `to` 属性指定链接. -->
			<router-view> </router-view>
			<!-- 使用RouterView组件显示. -->
		</div>
	</body>
	<script>
		/* 2、定义组件 */
		var home = Vue.extend({
			template: '<div>首页内容:路由</div>'
		});
		var about = Vue.extend({
			template: '<div>路由相关介绍</div>'
		});
		/* 注1:extend是构造一个组件的语法器. 你给它参数,他给你一个组件,然后这个组件
           你可以作用到Vue.component这个全局注册方法里,也可以在任意vue模板里使用car组件 */
           
		/* 	3、需要将不同的组件放入一个容器中(路由集合) */
		var routes = [{
			component: home,
			path: '/home'
		}, {
			component: about,
			path: '/about'
		}]
		/* 4、将路由集合组装成路由器 */
		var router = new VueRouter({
			routes
		});
		/* 5、将路由挂载到Vue实例中 */
		new Vue({
			el: "#app",
			router,
			data() {
				return {
					msg: '路由'
				};
			}
		});
	</script>
</html>

在这里插入图片描述

二、Node.js环境搭建

2.1 Node.js简介

Node.js是一个开源的、跨平台的JavaScript运行时环境,它允许开发者使用JavaScript语言编写服务器端的应用程序。传统上,JavaScript主要用于在浏览器中编写前端代码,但是Node.js的出现使得开发者可以将JavaScript应用于服务器端开发。

Node.js基于Chrome V8引擎,它提供了一组丰富的内置库和模块,使得开发者可以轻松地构建高性能、可扩展的网络应用程序。Node.js采用事件驱动、非阻塞I/O模型,这意味着它可以处理大量并发请求而不会阻塞其他操作,从而提供了出色的性能和可伸缩性。

Node.js的应用场景非常广泛,包括构建Web服务器、API服务器、实时应用程序、命令行工具等。它还可以与各种数据库进行交互,如MongoDB、MySQL等,以及与其他服务进行通信,如HTTP、TCP、UDP等。

Node.js–>JavaScript运行环境,开发语言是:javascript
J2EE -->Java运行环境, 开发语言是java

2.2 npm

npm 是Node Package Manager的缩写,是一个用于管理和共享JavaScript代码的工具。它是Node.js的默认包管理器,用于安装、发布和管理JavaScript模块。

通过npm,开发者可以轻松地安装和更新依赖项,以及共享自己编写的代码供他人使用。npm提供了一个庞大的开源代码库,开发者可以从中获取各种功能强大的模块,以加快开发速度并提高代码质量。

类似于maven

2.3 环境搭建

2.3.1 下载解压

官网

Node有两个版本线: LTS是长期维护的稳定版本Current是新特性版本
本章使用的是:node-v18.16.1-win-x64

下载后解压到指定文件夹就行,并在解压后的目录下建立node_global和node_cache这两个目录
在这里插入图片描述

注1:新建目录说明
node_global:npm全局安装位置
node_cache:npm缓存路径

注2:本教程是将文件解压到D:\develop\node-v18.16.1-win-x64,后面都以此为例,实际开发中请修改成自己的解压目录

2.3.2 配置环境变量

与配置java非常相似

新增NODE_HOME,值为:D:\develop\node-v18.16.1-win-x64
在这里插入图片描述
在PATH添加:%NODE_HOME%%NODE_HOME%\node_global
在这里插入图片描述
测试,在cmd窗口输入node -vnpm -v ,出现版本即表示配置成功
在这里插入图片描述

2.3.3 配置npm全局模块路径和cache默认安装位置

打开cmd,分开执行如下命令:

  • npm config set cache “D:\develop\node-v18.16.1-win-x64\node_cache”

  • npm config set prefix “D:\develop\node-v18.16.1-win-x64\node_global”

注1:将步骤一创建的node_global(npm全局安装位置)和node_cache(npm缓存路径)与npm联系起来
注2:如果执行命令卡死,可以删除C:\Users\用户名.npmrc 后重新执行。(用户名:为当前电脑的用户名)
注3:“D:\develop\node-v18.16.1-win-x64”,双引号不能少

2.3.4 修改npm镜像提高下载速度

可以使用 cnpm 或 直接设置 --registry ,推荐设置 --registry

  • –registry

       ## 设置淘宝源
    
       npm config set registry https://registry.npm.taobao.org/
    
       ## 查看源,可以看到设置过的所有的源
    
       npm config get registry
    
  • 注1:其实此步骤的内容就是将以下代码添加到C:\Users\用户名.npmrc文件中 registry=https://registry.npm.taobao.org

  • cnpm

     npm install -g cnpm --registry=https://registry.npm.taobao.org
    
  • 注1:cnpm安装完成后,以后就可以用cnpm命令代替npm命令, 此时npm还是会用官方镜像,cnpm会用国内镜像

  • 注2:如果要恢复成原来的设置,执行如下:npm config set registry https://registry.npmjs.org/

  • 查看npm全局路径设置情况

       ## 此步骤随便全局安装一个模块就可以测评
    
       npm install webpack -g
    
       ## 以上命令执行完毕后,会生成如下文件
    
       %node_home%\node_global\node_modules\webpack
       
       注意:下载过程中出现warn不用管,出现Error,删掉下载的破碎文件重新下载
    

在这里插入图片描述
在这里插入图片描述

2.4 运行项目

在项目文件中打开cmd,输入 nmp i
在这里插入图片描述

命令执行完项目文件中会出现node_modules文件
在这里插入图片描述

命令执行完后,你会发现,项目的根目录下多了一个node_modules文件夹,

那里面就是从npm远程库里下载的模块,然后“安装”到你的项目中,

 此步骤,可理解成修改maven的pom文件添加依赖,然后maven再从中央仓库下载依赖

然后输入 npm run dev
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028091.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++核心基础教程之STL容器详解 list

set/multiset 插入只有insert&#xff0c;没有push_back, push_front, 因为会自动排序 set是用二叉树去管理的&#xff0c;稍微修改树的结构就会改变&#xff0c;所以他不允许修改&#xff0c;迭代器是只读迭代器。 因为形参名和实参名相同&#xff0c;所以要用this 把下…

分布式共识算法

一、共识算法的目标 为了保证集群中各个无服务器节点的一致性&#xff0c;达到不会应为服务器的故障导致数据丢失&#xff0c;大概有以下三种&#xff1a;Paxos、Raft、ZAB 二、Raft 2.1、Raft算法概述 不同于Paxos算法直接从分布式一致性问题出发推导出来&#xff0c;Raft…

若依(RuoYi-Vue)+Flowable工作流前后端整合教程

此教程适合若依前后端分离项目&#xff0c;其他项目可以在扩展列表中进行查找。 近期公司里需要对很久以前的RuoYi-Vue前后端分离项目扩展出flowable的功能&#xff0c;当然这个重任也是落在了我的身上&#xff08;不然也不会有这篇文章&#xff09;&#xff0c;然后我在官网看…

MySQL---优化日志

目录 一、MySQL优化 3、mysql server上的优化 3.1、MySQL查询缓存 3.2、索引和数据缓存 3.2、线程缓存 二、MySQL日志 2.1、redo log 重做日志 2.2、undo log 回滚日志 2.3、错误日志 2.4、查询日志 2.5、二进制日志 2.5.1、基于binlog数据恢复实践操作 六、慢查…

苹果删除的照片如何恢复?无法拒绝的3个方法!

热爱摄影的人通常很热爱生活&#xff0c;照片是捕捉事物、人物、风景以及情绪的最佳方式。通过拍照&#xff0c;我们可以留住生活中路过的美好瞬间&#xff0c;所以照片对我们来说是非常有纪念意义的。 但有时候可能会因为误操作而删除了一些非常重要的照片。那么苹果手机删除…

【Python从入门到进阶】36、Selenium 动作交互

接上篇《35、selenium基本语法学习》 上一篇我们介绍了selenium的基本语法&#xff0c;包括元素定位以及访问元素信息的操作。本篇我们来学习selenium操作网页的动作内容。 一、什么是selenium动作操作 动作操作是指使用Selenium调用WebDriver执行与用户交互相关的动作&#…

可视化大屏报表的设计与制作 | 附成果图

大屏可视化报表是一种以大屏幕为展示媒介&#xff0c;通过图形、图表、文字等多种方式将数据信息呈现出来的报表形式。它具有视觉冲击力强、信息量大、交互性高等特点&#xff0c;能够帮助企业快速获取数据背后的价值和洞见&#xff0c;提高决策效率。因此近年来&#xff0c;大…

软件设计模式系列之十一——装饰模式

当谈到设计软件系统时&#xff0c;经常需要考虑如何使系统更加灵活、可扩展和易维护。设计模式是一种被广泛采用的方法&#xff0c;用于解决常见的设计问题&#xff0c;并提供了一套可重用的解决方案。装饰模式&#xff08;Decorator Pattern&#xff09;是一种结构型设计模式&…

iOS应用上线需要注意的问题

将iOS应用上线到App Store需要仔细注意一系列问题&#xff0c;以确保应用的质量、安全性和用户体验。以下是一些在iOS应用上线过程中需要注意的关键问题&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。…

教你快速使用springboot整合图形验证码的两种方式

前言 今天给大家展示的是springboot使用图形验证码的两种方式&#xff0c;第一种基于hutool来实现&#xff0c;第二种方式基于axet实现。现在我们来谈一谈为什么要学习验证码 防止恶意攻击&#xff1a;验证码是一种常用的安全措施&#xff0c;它可以有效地防止恶意攻击&#x…

C++学习笔记——类与对象(六个默认成员函数)

1、构造函数 在一个类中&#xff0c;编译器会自动生成默认的成员函数&#xff0c;当对象进行初始化时&#xff0c;会默认调用这个函数来初始化。 构造函数是一个特殊的成员函数&#xff0c;名字与类名相同,创建类类型对象时由编译器自动调用&#xff0c;以保证 每个数据成员都有…

HTTPS的工作过程

HTTPS就是对HTTP进行了加密&#xff0c;因为要保证数据安全&#xff0c;就需要进行加密&#xff0c;网络中不再直接传输明文了&#xff0c;而是加密之后的密文&#xff0c;加密的方法有很多&#xff0c;但是整体可以分为两大类:对称加密和非对称加密 对称加密 对称加密其实就是…

Vue中的深度监听(Deep Watch):详细解析与实际示例

Vue中的深度监听&#xff08;Deep Watch&#xff09;&#xff1a;详细解析与实际示例 Vue.js 是一款流行的前端 JavaScript 框架&#xff0c;其响应式系统是其核心特性之一。通过响应式系统&#xff0c;Vue允许开发者轻松地监听数据的变化并对其做出响应。在某些情况下&#x…

零基础学前端(七)将项目发布成网站

我们学习了HTML和CSS&#xff0c;已经可以做出精美的静态网页。我们不慌学习JavaScript&#xff0c;因为Javascript的作用是为网页增加动作和数据交换&#xff0c;只能让网页更完美而已&#xff0c;现在网页的基础我们已经可以搭建&#xff0c;我们不妨先将网站发布出去&#x…

uniapp选择地址弹窗组件

1.效果 2.子组件在components里面创建组件AddreessWindow <template><view style"position: relative;z-index: 999999 !important;"><view class"address-window" :class"value true ? on : "><view class"title…

Controller统一异常处理和yaml配置

目录 Controller统一异常处理 url解析 static下静态资源文件的访问 配置类 如何访问static下的资源文件 yaml基础语法 注解赋值 批量注入 单个注入 Controller统一异常处理 Controller统一异常处理ControllerAdvice&#xff1a;统一为Controller进行"增强" …

聊聊Spring中循环依赖与三级缓存

先看几个问题 什么事循环依赖&#xff1f;什么情况下循环依赖可以被处理&#xff1f;spring是如何解决循环依赖的&#xff1f; 什么是循环依赖&#xff1f; 简单理解就是实例 A 依赖实例 B 的同时 B 也依赖了 A Component public class A {// A 中依赖 BAutowiredprivate B b…

【表格插入小计行】el-table表格,数组对象中根据某字段插入小计行计算数据

前言 功能解释&#xff1a;遇到的一个需求&#xff0c;是表格的tabledata数组。里面有科室医生还有很多消费指标等数据。然后需要我排序后把科室放在一起。然后在每个科室下面添加一行数据&#xff0c;是小计行。用于计算上面相同科室的所有数据汇总。然后最下面再来个合计行&…

【深度学习实验】前馈神经网络(四):自定义逻辑回归模型:前向传播、反向传播算法

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. 逻辑回归Logistic类 a. 构造函数__init__ b. __call__(self, x)方法 c. 前向传播forward d. 反向传播backward 2. 模型训练 3. 代码整合 一、实验介绍 实现逻…