使用vue-cli搭建SPA项目

news2024/11/26 20:34:53

一.SPA项目的构建

前提

nodeJS环境已经搭建完毕

node -v

npm -v

什么是SPA项目

SPA(Single Page Application)项目是一种使用单页面架构的Web应用项目。在SPA项目中,整个应用程序只有一个HTML页面,通过动态加载数据和更新DOM来实现页面的切换和展示,而不需要每次跳转页面都向服务器发送请求进行页面刷新。

传统的多页面应用(MPA)每个不同的页面都对应一个URL地址,当用户点击链接或输入不同的URL时,浏览器会向服务器发送请求,服务器返回对应的页面内容,然后浏览器进行页面的刷新和渲染。而在SPA项目中,初始时加载应用的单个HTML页面,并通过JavaScript进行动态的数据获取和页面更新,只改变页面中的局部内容,而不需要进行整个页面的刷新和重新渲染。

SPA项目的特点包括:

  1. 单页面结构:整个应用只有一个HTML页面,通过动态加载数据和更新DOM来实现页面切换和展示。

  2. 前后端分离:SPA项目通常采用前后端分离的架构,前端负责数据的获取和页面的展示,后端负责提供数据接口。

  3. 异步加载:SPA项目采用异步加载数据的方式,通过AJAX、Fetch等技术与服务器进行通信,获取数据并更新页面。

  4. 路由系统:SPA项目使用路由系统来管理URL地址和对应的页面展示,通过URL的变化实现页面的切换。

  5. 富交互性:SPA项目能够实现丰富的用户交互和动态效果,提升用户体验。

SPA项目在前端开发中越来越流行,它可以提供更好的用户体验和性能表现,适用于响应式和移动端开发。一些流行的前端框架和库,如Vue.js、React和Angular等,都提供了构建SPA项目的支持。开发者可以利用这些框架和库来快速搭建SPA项目,实现灵活和高效的Web应用。

什么是vue-cli

(Command Line Interface)是一个用于快速搭建Vue.js项目的脚手架工具。它是一个基于Node.js的命令行工具,提供了一套初始化、开发、构建和测试Vue.js项目的标准化工具链。 Vue CLI可以帮助你快速创建一个新的Vue项目,并提供了一些常用的开发工具和配置选项,例如: 1. 项目初始化:通过Vue CLI可以轻松创建一个新的Vue项目,包括必要的文件结构和配置文件。 2. 开发服务器:Vue CLI提供了一个开发服务器,可以在本地实时预览和调试你的Vue应用。 3. 内置的构建工具:Vue CLI集成了Webpack等构建工具,可以帮助你打包和优化Vue项目,生成用于生产环境的静态文件。 4. 插件系统:Vue CLI支持插件系统,你可以根据自己的需求选择安装和配置一些常用的插件,以扩展Vue项目的功能和特性。 总之,Vue CLI是一个强大的命令行工具,可以帮助你快速搭建和开发Vue.js项目,并提供了一些常用的开发工具和配置选项,以提高开发效率和项目质量。

 安装vue-cli

在cmd中分别执行以下语句:

npm install -g vue-cli

npm install webpack -g

安装 

 

 安装成功

  vue init webpack spa1                此命令用于创建SPA项目,它会在当前目录生成一个以

“spa1”命名的文件夹

 spa1即为项目名,项目名不能用中文或大写字母,然后终端会出现“一问一答”模式

 

出现以下情况只要不报红就代表建立好了 

 

把项目导入到 HBuilder X里面

 

然后在SAP1的根目录打开cmd,输入 npm run dev启动项目,最后会形成,如下图所示

 

把如图所示网址复制到网页搜索 

 

出现如图所示即可 

 

类的介绍:

build:导包用的类

 config:放配置的类

node_modules:所有的js依赖都放在这里面

src:放代码的地方

 

二.SPA项目中的路由跳转

新建目录 

 

使用HTML建立Home.vue和About.vue

 

 

 得到router对象

 

建立index.js编写
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Home from '@/components/Home'
import About from '@/components/About'

Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
	{
	   path: '/Home',
	   name: 'Home',
	   component: Home
	},
	{
	   path: '/About',
	   name: 'About',
	   component: About
	}
		
  ]
})
 建立App.vue
<template>
  <div id="app">
   <!-- <img src="./assets/logo.png"> -->
	 <router-link to="/Home">首页</router-link>
	 <router-link to="/About">关于</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>
 测试结果

 三.基于SPA项目完成嵌套路由

使用HTML建立AboutMe.vue和AboutWebsite.vue

 AboutMe.vue

<template>
	<div>
		这是战长的简介
	</div>
</template>

<script>
export default {
  name: 'AboutMe',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

<style>
</style>

AboutWebsite.vue

<template>
	<div>
    网站的发展史
	</div>
</template>

<script>
export default {
  name: 'AboutWebsite',
  data () {
    return {
      msg: 'Welcome to Your Vue.js App'
    }
  }
}
</script>

<style>
</style>
 在index.js中重新编写
import Vue from 'vue'
import Router from 'vue-router'
import HelloWorld from '@/components/HelloWorld'
import Home from '@/components/Home'
import About from '@/components/About'
import AboutMe from '@/components/AboutMe'
import AboutWebsite from '@/components/AboutWebsite'


Vue.use(Router)

export default new Router({
  routes: [
    {
      path: '/',
      name: 'Home',
      component: Home
    },
	{
	   path: '/Home',
	   name: 'Home',
	   component: Home
	},
	{
	   path: '/About',
	   name: 'About',
	   component: About,
	   children:[
		   {
		     path: '/AboutMe',
		     name: 'AboutMe',
		     component: AboutMe
		   },
		   {
		      path: '/AboutWebsite',
		      name: 'AboutWebsite',
		      component: AboutWebsite
		   }
	   ]
	}
		
  ]
})
如图所示在App.vue中重写以下代码即可

测试结果
 

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

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

相关文章

计算机竞赛 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数&#xff1a;2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…

springboot实现发送邮箱验证码

准备工作 在邮箱官网开放SMTP授权&#xff0c;获取相应密钥&#xff0c;才可以进行发送邮件 这里以网易163邮箱为例&#xff0c;登录邮箱后&#xff0c;依次点击“设置-POP3/SMTP/IMAP” &#xff0c;然后开启SMTP服务。这时候会提示一个授权码&#xff0c;例如&#xff1a;H…

I2C子系统、读取温湿度的逻辑及代码

一、IIC子系统 两根线&#xff1a; scl:时钟线 sda:数据线 iic有4种信号&#xff1a; 起始信号&#xff08;start&#xff09;:scl是高电平&#xff0c;sda下降沿 终止信号&#xff08;stop&#xff09;:scl高电平&#xff0c;sda上升沿 应答信号&#xf…

面试官:说说JavaScript中的数据类型?区别?

&#x1f3ac; 岸边的风&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 一、概述 二、显示转换 Number() parseInt() String() Boolean() 三、隐式转换 自动转换为布尔值 自动转换…

SOLIDWORKS2024新功能--SOLIDWORKS篇(二)

该章节包括以下主题&#xff1a; 切口工具槽口延伸戳记工具薄片和槽口中的切割法线 切口工具 您可以使用切口工具在空心或薄壁圆柱体和圆锥体中生成切口。通过选择圆柱面或圆锥面上的边线&#xff0c;您可以将零件平展为钣金。 在早期版本中&#xff0c;如果您有圆柱形或圆锥形…

CTF是什么?

前言 &#x1f4bb;随着大数据、人工智能的发展&#xff0c;人们步入了新的时代&#xff0c;逐渐走上科技的巅峰。 ⚔科技是一把双刃剑&#xff0c;网络安全不容忽视&#xff0c;人们的隐私在大数据面前暴露无遗&#xff0c;账户被盗、资金损失、网络诈骗、隐私泄露&#xff…

spring源码环境搭建

spring源码环境搭建 步骤1 &#xff1a;下载Spring-framework源码 https://github.com/spring-projects/spring-framework/tree/5.1.x步骤2&#xff1a;修改build.gradle配置文件 修改repositories里面的maven使用阿里云镜像 maven { url “https://maven.aliyun.com/reposit…

JVM基础知识(内存区域划分,类加载,GC垃圾回收)

目录 内存区域划分 JVM中的栈 JVM中的堆 程序计数器 方法区(元数据区) 给一段代码,某个变量在哪个区域上? 类加载 类加载时机 双亲委派模型 GC 垃圾回收机制 GC 实际工作过程 1.找到垃圾/判定垃圾 1.可达性分析(Java中的做法) 2.引用计数 2.清理垃圾 1.标记清除…

小程序商城开发搭建;

小程序商城系统是基于移动互联网的一种在线购物平台&#xff0c;提供线上商城购物、在线下单、支付及配送等功能。随着智能手机普及率的加速提升&#xff0c;小程序商城系统也成为更多商家的选择。下面是小程序商城系统的主要功能介绍&#xff1a; 1、商品展示&#xff1a;商家…

Vue路由与node.js环境搭建

目录 前言 一.Vue路由 1.什么是spa 1.1简介 1.2 spa的特点 1.3 spa的优势以及未来的挑战 2.路由的使用 2.1 导入JS依赖 2.2 定义两个组件 2.3 定义组件与路径对应关系 2.4 通过路由关系获取路由对象 2.5 将对象挂载到vue实例中 2.6 定义触发路由事件的按钮 2.7 定…

华为云云耀云服务器L实例评测|云耀云服务器L实例的购买及使用体验

华为云云耀云服务器L实例评测&#xff5c;云耀云服务器L实例的购买及使用体验 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点1.3 云耀云服务器L实例使用场景 二、云耀云服务器L实例支持的镜像2.1 镜像类型2.2 系统镜像2.3 应用镜像 三、购买云…

HOOPS Visualize 2023 SP2 U1 Crack-HOOPS Visualize

HOOPS Visualize 是一个以工程为中心的高性能图形库&#xff0c;用于在桌面、移动和 AR/VR 设备上渲染 3D CAD 模型。该 3D 图形库具有线程安全的 C 和 C# 接口以及 OpenGL 和 DirectX 驱动程序&#xff0c;并由响应迅速的专业图形专家提供支持。通过访问最新的 3D GPU 功能&am…

【业务功能篇112】Springboot + Spring Security 权限管理-登录模块开发实战

合家云社区物业管理平台 4.权限管理模块研发 4.3 登录模块开发 前台和后台的认证授权统一都使用SpringSecurity安全框架来实现。首次登录过程如下图: 4.3.1 生成图片校验码 4.3.1.1 导入工具类 (1) 导入Constants 常量类 /*** 通用常量类* author spikeCong* date 2023/5…

【数据结构】【C++】封装红黑树模拟实现map和set容器

【数据结构】&&【C】封装红黑树模拟实现map和set容器 一.红黑树的完成二.改造红黑树(泛型适配)三.封装map和set的接口四.实现红黑树迭代器(泛型适配)五.封装map和set的迭代器六.解决key不能修改问题七.实现map[]运算符重载 一.红黑树的完成 在上一篇红黑树的模拟实现中…

抖音、知乎、小红书的流量算法

目前我国网民规模已超过10亿&#xff0c;在这互联网时代&#xff0c;更是流量为王。各个平台里的每个视频、每张图片&#xff0c;背后都有着算法的身影&#xff0c;支配着所有人的流量。作为内容创作者及运营者来说&#xff0c;除了制作高质量的内容以外&#xff0c;也需要掌握…

五年全满分 | 求臻医学满分通过2023 NGSST-A 能力验证

近期&#xff0c;求臻医学以满分的优异成绩顺利通过了美国病理学家协会&#xff08;College of American Pathologists, CAP&#xff09;组织开展的NGSST-A 2023&#xff08;Next-Generation Sequencing Solid Tumor&#xff09;能力验证项目。至此&#xff0c;公司已连续五年满…

如何去除音乐中的人声,只留伴奏?

如何去除音乐中的人声&#xff0c;只留伴奏&#xff1f;看到很多小伙伴都有这种需求&#xff0c;今天给大家分享一个宝藏网站&#xff0c;简易操作&#xff0c;可以轻松提取伴奏&#xff0c;想学的一起来看看吧&#xff01; 音分轨——人声分离软件&#xff0c;这是一个用了人工…

Spring 6.0 新特性

文章目录 Spring的发展历史AOTGraalVMSpringBoot实战AOTRuntimeHints案例分析RuntimeHintsRegistrar SpringBoot中AOT核心代码 Spring的发展历史 AOT Spring 6.0的新特性Ahead of Time&#xff08;AOT&#xff09;编译是一种技术&#xff0c;可以提前将Spring应用程序编译成原…

Linux为什么不能像鸿蒙一样实现万物互联?

Linux为什么不能像鸿蒙一样实现万物互联? 可能原因&#xff0c;Linux不会炒作。 万物互联&#xff0c;先从网络开始&#xff0c;光纤入户&#xff0c;首先接入光猫&#xff0c;光猫的操作系统&#xff0c;不确定是不是openWRT&#xff0c;但是这个确定是Linux内核。 然后进入…

免杀对抗-java语言-shellcode免杀-源码修改+打包exe

JAVA-ShellCode免杀-源码修改&打包EXE Shellcode-生成/上线 1.msf生成shellcode 命令&#xff1a;msfvenom -p java/meterpreter/reverse_tcp LHOSTx.x.x.x LPORTxxxx -f jar -o msf.jar 2.msf设置监听 3.执行msf生成的shellcode jar包&#xff0c;成功上线 命令&#xff1…