Vue框架2(vue搭建方式2:利用脚手架,ElementUI)

news2025/6/7 1:30:56

一.引入vue第二种搭建方式

在以前的前端项目中,一个项目需要多个html文件实现页面之前的切换,如果页面中需要依赖js或者css文件,那么我们就需要在多个html文件中都需要导入vue.js文件,太过繁琐.

现在前端开发都采用单页面结果,一个项目中只有一个html文件

其他不同的内容都写在.vue文件中,每个vue文件就是一个组件,我们会为每个组件配置一个访问的地址,通过地址访问组件,在唯一的html文件中切换不同的组件

用图来展示项目开发中的单页结构:

正如图中所写,每一个html文件就相当于一个画布,我们只需要通过组件的地址,在此html文件中使用不同的组件,通过此方式实现只使用一个html文件来实现不同的页面,以及页面的切换. 

此方法的好处是:配置只需要导入一次即可,导入依赖也只需要一次

二. 使用vue-cli搭建项目

vue-cli 是官方提供的一个脚手架,用于快速生成一个vue的项目模板;预先定义好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,使我们的开发更加的快速.

主要功能:

  • 统一的目录结构
  • 本地调试
  • 热部署
  • 单元测试
  • 集成打包上线

需要的环境:

node.js

简单来说Node.js是一个前端js运行环境(类似于java后端开发的jdk)或者说是一个JS语言解释器.

npm(npm node package manager)

npm是Node.js包管理工具,用来安装各种Node.js的扩展.npm是JavaScript 的包管理工具,也是世界上最大的软件注册表.有超过60万个JavaScript 代码包可供下载.npm 让 JavaScript开发人员可以轻松地使用其他开发人员共享的代码.

搭建vue-cli单页项目的步骤

1.首先我们需要安装node.js前端js运行环境到我们的电脑上

我们可以在node.js官方网站上进行下载并安装

2.使用HbuilderX快速创建一个vue-cli项目

创建完后的vue-cli项目会存在很多目录,下面是这些目录与目录中文件的解释

注意:  package-lock.json这个文件目录我们现在不使用,所有这里直接删掉即可 

3.创建成功后,在命令行窗口启动项目

注意打开的命令窗口的项目名一定要是当前的项目名

在命令行窗口输入npm run serve

输入后,运行成功后会出现访问地址

在命令行中ctrl+c 停止服务

npm中的常用指令 

1.npm install 用于安装各种依赖,在网上下载别人的项目时,项目中没有node-modules时就需要我们                      通过该指令下载各种所需的依赖

2.npm run serve 启动前端项目,在终端里面ctrl+c 停止服务

3.npm run build 打包项目

三. 组件路由

在单页面项目中,我们需要实现多个页面的切换,即多个组件的切换.这时我们就需要通过组件路由实现组件的切换.

概述

vue router 是 Vue.js官方的路由管理器.它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌.

组件路由的搭建(以及基础用法)

1.安装组件路由的依赖库

vue-router 是一个插件包,所以我们还是需要用 npm 来进行安装的.
打开命令行工具,进入你的项目目录,输入命令npm i vue-router@3.5.3 

在下载完成后,在package.json会出现vue-router对应的版本 

注意:  我们在下载依赖库或补全依赖时都会生成一个package-lock.json文件,我们需要删除它,我们在当前阶段用不到它.

2.在src目录下创建一个router的文件夹,在文件夹中创建一个index.js文件 

在index.js文件中的代码:

import Vue from 'vue';  /*导入vue*/
import router from 'vue-router'; /* 导入路由 */

/* 导入我们自己创建的组件 */

import Index from "../views/Index.vue"
import Login from "../views/Login"//可以不需要文件后缀名
import Reg from "../views/Reg"

Vue.use(router);
//创建vue-router对象
let rout = new router({
routes: [
       {
        path: '/index',//为组件定义访问地址
        name: 'index',//命名
        component: Index//指定组件
       },
       {
        path: '/login',
        component: Login
       },
	   {
	    path: '/reg',
	    component: Reg
	   }
       ]
  });
//导出路由对象
export default rout;

其中需要注意的是我们自己所添加的组件名首字母是大写,在导入我们创建的组件时需要注意字母的大写.

注意:  我们通常在src目录下创建一个views文件夹,在此文件夹中创建我们自己的组件

<template>
	<!-- 只能有一个根标签,组件内所有内容都写在根标签中 -->
	<div>
		首页{{message}}
		<router-link to="/login">登录</router-link>
		<router-link to="/reg">注册</router-link>
	</div>
</template>

<script>
	export default{
		//定义数据
		data() {
			return{
				message:"hello index"
			}
		},
		methods:{//定义函数
			
		},
		mounted() {//生命周期函数
			
		}
	}
</script>

<!-- 写组件相关的样式 -->
<style>
</style>

这时我们自己创建的一个组件的代码基本格式 

3.使用路由

1.在组件的<template>根标签中添加此标签,类似于超链接,点击即可切换指定地址的组件

<router-link to="/index">首页</router-link>
<router-link to="/content">内容</router-link>

2.App.vue文件的<template>根标签中添加下方标签

<router-view></router-view>

该组件用于显示指定组件内容

注意:   App.vue文件的完整代码以及解释

<template>
	 <!-- 默认组件 -->
  <div id="app">
    <!--显示指定组件内容 -->
	<router-view></router-view>
  </div>
</template>

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

 4.在main.js中配置组件路由

import Vue from 'vue'//导入vue.js
import App from './App.vue'//导入默认组件

//导入路由组件
import router from './router/index.js'
Vue.use(router);

Vue.config.productionTip = false

/* 创建一个唯一的vue对象 */
new Vue({
  render: h => h(App),//项目启动时,默认访问APP.vue组件
  router,
}).$mount('#app')//类似el:"#app"

 这里只演示组件路由的基础用法,更高阶的用法会在后续的学习中演示 

四.更换npm镜像地址,下载依赖库或补全依赖库更快

我们在补全依赖库,或下载安装组件路由的依赖库时,都是从国外的网站中下载的,我们可以更换npm镜像地址,下载速度更快一些.

这里我参考的博客是国内npm源镜像(npm加速下载) 指定npm镜像_npm国内镜像源-CSDN博客

打开命令行工具,进入你的项目目录,输入命令npm config get registry 可查看当前的镜像源

使用那个镜像,只需要 npm config set registry + 对应的镜像网址就好了(镜像源的网址参考上方的博客)

五. ElementUI

Element是一套为开发者,设计师和产品经理准备的基于Vue 2.0 的桌面端组件库.

ElementUI提供了丰富的UI组件,可以根据用户选择进行使用,大大提升了开发效率.

安装ElementUI

1.打开命令行窗口,进入项目目录,输入指令:npm i element-ui -S 安装ElementUI依赖库.

此处即为ElementUI的版本号 

2.在 main.js中写入以下内容: 
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
new Vue({
render: h => h(App),
}).$mount('#app');

下方是在我的项目中的main.js文件添加路由组件以及ElementUI组件 

import Vue from 'vue'//导入vue.js
import App from './App.vue'//导入默认组件

//导入路由组件
import router from './router/index.js'
Vue.use(router);

//导入elementui组件
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

Vue.config.productionTip = false

/* 创建一个唯一的vue对象 */
new Vue({
  render: h => h(App),//项目启动时,默认访问APP.vue组件
  router,
}).$mount('#app')//类似el:"#app"

具体组件的使用请参考API文档

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

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

相关文章

mac 设置cursor (像PyCharm一样展示效果)

一、注册 Cursor - The AI Code Editor 二、配置Python环境 我之前使用pycharm创建的python项目&#xff0c;以及创建了虚拟环境&#xff0c;现在要使用cursor继续开发。 2.1 选择Python 虚拟环境 PyCharm 通常将虚拟环境存储在项目目录下的 venv 或 .venv 文件夹中&#xf…

SpringCloudAlibaba微服务架构

技术架构图 SpringCloudAlibaba微服务架构 说明&#xff1a; 1.1、采用SpringCloudAlibaba分布式微服务架构&#xff0c;使用Nginx做代理&#xff0c;服务治理使用Nacos组件&#xff0c;Gateway网关做权限验证、路由、过滤。 1.2、Redis做消息缓存&#xff0c;包括数据大屏、数…

Java高级 | 【实验三】Springboot 静态资源访问

隶属文章&#xff1a; Java高级 | &#xff08;二十二&#xff09;Java常用类库-CSDN博客 系列文章&#xff1a; Java高级 | 【实验一】Spring Boot安装及测试 最新-CSDN博客 Java高级 | 【实验二】Springboot 控制器类相关注解知识-CSDN博客 目录 一、Thymeleaf 1.1 是什么&…

「Java教案」Java程序的构成

课程目标 1&#xff0e;知识目标 能够按照Java标识符的命名规则&#xff0c;规范变量的命名。能够区分Java中的关键字与保留字。能够对注释进行分类&#xff0c;根据注释的用途合理的选择注释方式。 2&#xff0e;能力目标 能编写符合规范的标识符。能识别Java中的关键字和…

区块链可投会议CCF B--EDBT 2026 截止10.8 附录用率

Conference&#xff1a;EDBT: 29th International Conference on Extending Database Technology CCF level&#xff1a;CCF B Categories&#xff1a;数据库&#xff0f;数据挖掘&#xff0f;内容检索 Year&#xff1a;2026 Conference time&#xff1a;24th March - 27th…

经典ReLU回归!重大缺陷「死亡ReLU问题」已被解决

来源 &#xff5c; 机器之心 在深度学习领域中&#xff0c;对激活函数的探讨已成为一个独立的研究方向。例如 GELU、SELU 和 SiLU 等函数凭借其平滑梯度与卓越的收敛特性&#xff0c;已成为热门选择。 尽管这一趋势盛行&#xff0c;经典 ReLU 函数仍因其简洁性、固有稀疏性及…

在VSCode中开发一个uni-app项目

创建项目 使用命令行工具&#xff08;例如 vue-cli&#xff09;来创建一个新的 uni-app 项目。 创建以JavaScript开发的工程 npx degit dcloudio/uni-preset-vue#vite my-vue3-project //或者 npx degit dcloudio/uni-preset-vue#vite-alpha my-vue3-project创建以TypeScript…

Python - 爬虫;Scrapy框架之插件Extensions(四)

阅读本文前先参考 https://blog.csdn.net/MinggeQingchun/article/details/145904572 在 Scrapy 中&#xff0c;扩展&#xff08;Extensions&#xff09;是一种插件&#xff0c;允许你添加额外的功能到你的爬虫项目中。这些扩展可以在项目的不同阶段执行&#xff0c;比如启动…

Spark实战能力测评模拟题精析【模拟考】

1.println(Array(1,2,3,4,5).filter(_%20).toList() 输出结果是&#xff08;B&#xff09; A. 2 4 B. List(2,4) C. List(1,3,5) D. 1 3 5 2.println(Array("tom","team","pom") .filter(_.matches("")).toList) 输出结果为(List(tom,…

【OSG学习笔记】Day 15: 路径动画与相机漫游

本章来学习下漫游相机。 路径动画与相机漫游 本届内容比较简单&#xff0c;其实就是实现物体的运动和相机的运动 当然这两个要一起执行。 贝塞尔曲线 贝塞尔曲线&#xff08;Bzier curve&#xff09;是一种在计算机图形学、动画制作、工业设计等领域广泛应用的参数曲线&am…

PostgreSQL(PostGIS)触发器+坐标转换案例

需求&#xff0c;只录入一份坐标参考为4326的数据&#xff0c;但是发布的数据要求坐标必须是3857 对这种需求可以利用数据库触发器实现数据的同步 步骤&#xff1a; 1. 使用ArcGIS Pro创建一个名字为testfc_4326的图层&#xff0c;坐标参考为4326 2. 使用Pro再创建一个名字…

Constraints and Triggers

目录 Kinds of Constraints Single-Attribute Keys Multiattribute Key Foreign Keys Expressing Foreign Keys Enforcing Foreign-Key Constraints Actions Taken Attribute-Based Checks Timing of Checks Tuple-Based Checks Assertions Timing of Assertion Ch…

BERT:让AI真正“读懂”语言的革命

BERT&#xff1a;让AI真正“读懂”语言的革命 ——图解谷歌神作《BERT: Pre-training of Deep Bidirectional Transformers》 2018年&#xff0c;谷歌AI团队扔出一篇核弹级论文&#xff0c;引爆了整个NLP领域。这个叫BERT的模型在11项任务中屠榜&#xff0c;甚至超越人类表现…

冷雨泉教授团队:新型视觉驱动智能假肢手,拟人化抓握技术突破,助力截肢者重获生活自信

研究背景&#xff1a;日常生活中&#xff0c;健康人依靠手完成对物体的操作。对于手部截肢患者&#xff0c;手部的缺失导致他们难以有效地操作物体&#xff0c;进而影响正常的日常生活。拥有一个能够实现拟人地自然抓取多种日常物体的五指动力假手是手部截肢患者的夙愿&#xf…

pikachu靶场通关笔记14 XSS关卡10-XSS之js输出(五种方法渗透)

目录 一、源码分析 1、进入靶场 2、代码审计 二、渗透实战 1、根据提示输入tmac 2、XSS探测 3、注入Payload1 4、注入Payload2 5、注入Payload3 6、注入Payload4 7、注入Payload5 本系列为通过《pikachu靶场通关笔记》的XSS关卡(共10关&#xff09;渗透集合&#x…

李沐-动手学深度学习:RNN

1.RNN从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l#8.3.4节 #batch_size&#xff1a;每个小批量中子序列样本的数目&#xff0c;num_steps&#xff1a;每个子序列中预定义的时间步数 #loa…

【教学类-36-10】20250531蝴蝶图案描边,最适合大小(一页1图1图、2图图案不同、2图图案相同对称)

背景说明: 之前做了动物头像扇子(描边20),并制作成一页一套图案对称两张 【教学类-36-09】20250526动物头像扇子的描边(通义万相)对称图40张,根据图片长宽,自动旋转图片,最大化图片-CSDN博客文章浏览阅读1k次,点赞37次,收藏6次。【教学类-36-09】20250526动物头像…

高效DBA的日常运维主题沙龙

2024年11月10日&#xff0c;在宁波组织了高效DBA的日常运维沙龙活动&#xff0c;大概有20人左右现场参加。会议的主题为&#xff1a; 目标&#xff1a; 1、识别高频低效操作并制定自动化方案 2、建立关键运维指标健康度体系 3、输出可立即落地的优化清单 会议议程 一、效能瓶…

AAAI 2025论文分享│STD-PLM:基于预训练语言模型的时空数据预测与补全方法

本文详细介绍了一篇发表于人工智能顶级会议AAAI 2025的论文《STD-PLM: Understanding Both Spatial and Temporal Properties of Spatial-Temporal Data with PLM》。该论文提出了一种基于预训练语言模型&#xff08;Pre-trained Language Model‌&#xff0c;PLM&#xff09;的…

Ethernet/IP转DeviceNet网关:驱动大型矿山自动化升级的核心纽带

在大型矿山自动化系统中&#xff0c;如何高效整合新老设备、打通数据孤岛、实现统一控制&#xff0c;是提升效率与安全的关键挑战。JH-EIP-DVN疆鸿智能EtherNet/IP转DeviceNet网关&#xff0c;正是解决这一难题的核心桥梁&#xff0c;为矿山各环节注入强劲连接力&#xff1a; …