vue框架技术相关概述以及前端框架整合
vue框架技术概述及前端框架整合
1 node.js
介绍:什么是node.js
Node.js就是运行在服务端的JavaScript。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。
作用
1 运行java需要安装JDK,而Node.js是JavaScript的运行环境,用于执行JavaScript代码的环境。
2 后端服务可以使用Tomcat服务器来运行,前端可以使用Node.js模拟出服务器的效果来运行。
浏览器的内核组成
1.DOM渲染引擎
2.js解析器(js引擎)
浏览器中有内核,内核中有js引擎,js引擎可以运行js,所以使用node.js可以脱离浏览器环境来执行js程序。
2 NPM
介绍
NPM全称是Node Package Manager,是Node.js包管理工具,也是node.js的包管理工具,相当于前端的maven。node.js已经集成了npm工具。
3 前端快速构建框架使用
(1)vue-element-admin
它是基于Element-ui与Vue的套后台管理系统集成解决方案。(里面功能有些多)
GitHub地址:https://github.com/PanjiaChen/vue-element-admin
(2)vue-admin-template
它是vue-element-admin后台管理系统的极简版,可作为基础模版进行二次开发。
GitHub地址:https://github.com/PanjiaChen/vue-admin-template
(如果极简版有些功能没有,可以从vue-element-admin的源码中去查找)
(3)Element-ui 是饿了么前端出品的基于 Vue.js 的后台组件库,方便程序员进行页面快速布局和构建。
官网:https://element.eleme.cn/#/zh-CN
4 vue框架的前端项目介绍
(1)打开前端项目,打开终端执行命令(下载相关的依赖包)
```shellnpm install```
# 启动前端项目
npm run dev(指定对应的环境)
使用npm下载完依赖包后,会出现一个node_modules文件夹(一般想对大一些)。(这个进行项目管理的时候,不需要提交,其他人拉下项目后,自己下载依赖包即可)
(2)改造项目信息(这些信息最好可以修改)
<1> 修改项目中的src/settings.js文件信息
# 对应着网页左上角的那个小字体
title:自己的项目
<2> 修改 src/main.js 文件信息
## 修改第7行,末尾的 en 改为 zh-CN 系统变为使用中文语言环境,例如:日期时间组件
import locale from 'element-ui/lib/locale/lang/zh-CN' // lang i18n
<3> 修改前端项目的端口号(默认是9528端口)修改vue.config.js 文件
// ## 第16行 9528端口
const port = process.env.port || process.env.npm_config_port || 9528 // dev port
<4> 如果不习惯Eslint语法检查工具可关闭:.eslintignore 文件(在多编写空格 tab以及//紧接着增加注释时会报红线)
需要在文件最后一行加上*号
build/*.js
src/assets
public
dist
*
<5> 修改访问后端接口地址的.env.development文件信息
通常指向nginx的地址
# base api 访问后端接口路径 开发环境 -- 实际上是前端发往windows的nginx中的 因为微服务有多个 前端只能发往一个端口地址(采用中间代理)
# VUE_APP_BASE_API = '/dev-api' 原先是这个
VUE_APP_BASE_API = 'http://localhost:9001' # 9001是本地nginx的端口号--里面有反向代理
<6> 注意api文件夹中的user.js文件信息
<7> 注意跨域问题(1个请求另一个时,只要协议、域名、端口号任意一个不一致,就会出现跨域问题)
如:http://locahost:9527前端项目访问http://localhost:8080后端服务,由于端口不一致,会导致跨域问题。(后期可通过网关来解决)前后端不分离的项目不需要考虑跨域问题。
可在controller层添加@CrossOrign解决。
<8> 配置路由相关信息(修改src/router/index.js文件)
export const constantRoutes = [{path: '/login',component: () => import('@/views/login/index'), //跳到登录页面//当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1hidden: true},{path: '/404',component: () => import('@/views/404'), //找不到页面,左边栏不会出现hidden: true},{//登录成功之后 将路由推到这里/path: '/',component: Layout, //Layout表示在左边的redirect: '/dashboard',children: [{path: 'dashboard',name: 'Dashboard',component: () => import('@/views/dashboard/index'),meta: { title: 'Dashboard', icon: 'dashboard' }}]},//多级菜单路由 -- 设置系统多级菜单 下面的都是没有用的 改成自己的{path: '/pms', //对应文件的路径 前端对应着nginx中配置的东西 如:点击这个路由 localhost:9001/pms 会自动根据pms来转发到对应的微服务中component: Layout, //表示主布局的意思name: 'pms', //每个路由的name不能相同meta: {title: '生产管理系统'}, //左边点击的菜单名字 **主菜单名字 1级菜单**children: [{path: '/proddisp', //根据这个路径 不是页面就在下面加上<router-view></router-view> **2级菜单**component: () => import('@/views/pms/proddisp'), name: 'proddisp',meta: {title: '生产调度'}, //下面有目录 不是页面 需要index.vue指定路由children: [{path: '/dispordman',component: () => import('@/views/pms/proddisp/dispordman'), // **3级菜单**name: 'dispordman',meta: {title: '调度指令管理'}, //下面有目录 不是页面 需要index.vue指定路由alwaysShow: true, //显示所有子集children: [{path: '/dispord/list', //对应页面之间的跳转name: 'PmsDispOrdList',component: () => import('@/views/pms/proddisp/dispordman/dispord/list'), //是页面 对应着的是vue中的文件路径(新建就可以)meta: {title: '调度指令库管理', icon: 'table'} },{path: '/dispordrls/list',name: 'PmsDispOrdRlsList',component: () => import('@/views/pms/proddisp/dispordman/dispordrls/list'), //是页面 下划线就没有了meta: { title: '调度指令管理', icon: 'table' }},{path: '/dispord/update/:id', // 对应修改页面中的this.$route.params.idname: 'PmsDispOrdUpdate',component: () => import('@/views/pms/proddisp/dispordman/dispord/update'),meta: {title: '编辑调度指令库',noCache: true},hidden: true //修改页面隐藏 不在菜单栏出现}]}]}]},
<9> 创建router-view
在 /pms/proddisp 2级目录下创建index.vue文件
在/pms/proddisp/dispordman 3级目录下创建index.vue文件
index.vue中写上以下信息:
<template><router-view/>
</template>
(3)目录结构
├── build # 构建编译
├── mock # 项目mock 模拟数据
├── public # 静态资源
│ │── favicon.ico # logo
│ └── index.html # 基础模板
├── src # 项目源代码
│ ├── api # 各种接口,包含所有请求
│ ├── assets # 图片字体等静态资源
│ ├── components # 全局公用组件,非公共组件在各自页面下维护
│ ├── icons # 矢量图标库
│ ├── layout # 布局
│ ├── router # 路由
│ ├── store # 全局存储管理
│ ├── styles # 全局样式
│ ├── utils # 全局公用工具,非公共工具在各自页面下维护
│ ├── views # 所有页面
│ ├── App.vue # 项目顶层组件
│ ├── main.js # 项目入口文件 加载组件 初始化等
│ └── permission.js # 认证入口
├── tests # 测试
├── .env.xxx # 环境变量配置
├── .eslintrc.js # eslint 配置项
├── .babel.config.js # 语法转换器配置
├── package.json # 项目信息和依赖配置
└── vue.config.js # vue-cli 配置
相关文章:

vue框架技术相关概述以及前端框架整合
vue框架技术概述及前端框架整合 1 node.js 介绍:什么是node.js Node.js就是运行在服务端的JavaScript。 Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎。 作用 1 运行java需要安装JDK,而Node.js是JavaScript的运行环…...

Spring Boot + Facade Pattern : 通过统一接口简化多模块业务
文章目录 Pre概述在编程中,外观模式是如何工作的?外观设计模式 UML 类图外观类和子系统的关系优点案例外观模式在复杂业务中的应用实战运用1. 项目搭建与基础配置2. 构建子系统组件航班服务酒店服务旅游套餐服务 3. 创建外观类4. 在 Controller 中使用外…...

牛客周赛 Round 78
题目目录 A-时间表查询!解题思路参考代码 B-一起做很甜的梦!解题思路参考代码 C-翻之解题思路参考代码 D-乘之解题思路参考代码 E-在树上游玩解题思路参考代码 A-时间表查询! \hspace{15pt} 今天是2025年1月25日,今年的六场牛客寒…...
【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类
一、贝叶斯原理 贝叶斯算法是基于贝叶斯公式的,其公式为: 其中叫做先验概率,叫做条件概率,叫做观察概率,叫做后验概率,也是我们求解的结果,通过比较后验概率的大小,将后验概率最大的…...

02.01 生产者消费者
请使用条件变量实现2生产者2消费者模型,注意1个生产者在生产的时候,另外一个生产者不能生产。 1>程序代码 #include <stdio.h> #include <string.h> #include <unistd.h> #include <stdlib.h> #include <sys/types.h>…...

mac 手工安装OpenSSL 3.4.0
如果你希望继续安装 openssl-3.4.0 而不是降级到 3.1.1,可以尝试以下解决方案。根据你提供的错误信息,问题可能出在测试阶段(make test),我们可以尝试跳过测试或修复测试失败的原因。 --- ### **解决方案:…...

kamailio-ACC_JSON模块详解【后端语言go】
要确认 ACC_JSON 模块是否已经成功将计费信息推送到消息队列(MQueue),以及如何从队列中取值,可以按照以下步骤进行操作: 1. 确认 ACC_JSON 已推送到队列 1.1 配置 ACC_JSON 确保 ACC_JSON 模块已正确配置并启用。以下…...

ArkTS语言介绍
文章目录 一、基本知识声明类型运算符语句函数函数声明可选参数Rest参数返回类型函数的作用域函数调用函数类型箭头函数(又名Lambda函数)闭包函数重载类字段方法构造函数可见性修饰符对象字面量抽象类接口接口属性接口继承抽象类和接口泛型类型和函数泛型类和接口泛型约束泛型…...

海外问卷调查之渠道查,企业经营的指南针
海外问卷调查,是企业调研最常用到的方法,有目的、有计划、有系统地收集研究对象的现实状况或历史状况的一种有效手段,是指导企业经营的有效手段。 海外问卷调查充分运用历史法、观察法等方法,同时使用谈话、问卷、个案研究、测试…...

spring和Mybatis的逆向工程
在现代企业级开发中,使用Spring和MyBatis进行快速、高效的数据库操作是非常常见的。本文将深入探讨如何使用Spring和MyBatis进行逆向工程,帮助开发者自动生成数据库相关的代码,提高开发效率和代码质量。 一、什么是逆向工程 逆向工程是指从…...

【Android】问deepseek存储访问
这些天deepseek爆火,我们来问问android问题看看,如果问android中的应用怎么访问外部存储,回答的很清楚,但是如果问的深入一些,比如Android中是怎么控制让应用不能读取其他应用的外部存储文件的,回答的比较抽…...

Android记事本App设计开发项目实战教程2025最新版Android Studio
平时上课录了个视频,从新建工程到打包Apk,从头做到尾,没有遗漏任何实现细节,欢迎学过Android基础的同学参加,如果你做过其他终端软件开发,也可以学习,快速上手Android基础开发。 Android记事本课…...

python学习——函数的返回值
在 Python 中,函数的返回值决定了调用该函数后得到的结果。默认情况下,如果函数没有使用 return 语句或没有明确返回一个值,函数将返回 None。为了实现更复杂的逻辑,可以通过 return 语句返回多个值、错误信息或其他数据类型。 返…...

【竞技宝】裂变天地S1:BB0-2PARI淘汰出局
北京时间2月1日,DOTA2裂变天地S1继续进行,昨日共进行三场比赛,第三场比赛迎来败者组第二轮PARI对阵BB。以下是本场比赛的详细战报。 第一局: 首局比赛,BB在天辉方,PARI在夜魇方。阵容方面,BB点出了圣堂、卡尔、玛尔斯、奶绿、亚巴顿,PARI则是拿到小娜迦、凤凰、大圣、玛西、萨…...

数据分析系列--⑨RapidMiner训练集、测试集、验证集划分
一、数据集获取 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 2.3 方法二 一、数据集获取 点击下载数据集 此数据集包含538312条数据. 二、划分数据集 1.导入和加载数据 2.数据集划分 2.1 划分说明 2.2 方法一 使用Filter Example Range算子. …...

实践Rust:编写一个猜数字游戏
如果你正在学习Rust,并且想通过一个有趣的小项目来巩固所学知识,那么“猜数字游戏”是一个绝佳的选择!这个游戏的逻辑非常简单:程序会随机生成一个数字,玩家需要猜测这个数字是多少,程序会告诉玩家猜大了还…...

JavaFX - 3D 形状
在前面的章节中,我们已经了解了如何在 JavaFX 应用程序中的 XY 平面上绘制 2D 形状。除了这些 2D 形状之外,我们还可以使用 JavaFX 绘制其他几个 3D 形状。 通常,3D 形状是可以在 XYZ 平面上绘制的几何图形。它们由两个或多个维度定义&#…...

阿里新发的大模型Qwen2.5-max如何?
阿里新发布的大模型Qwen2.5-Max是一款性能卓越、技术先进的大型语言模型,其在多个方面展现了突出的表现。以下是基于我搜索到的资料对Qwen2.5-Max的详细评价: 技术特点 超大规模预训练数据:Qwen2.5-Max采用了超过20万亿tokens的超大规模预训…...

文本复制兼容方案最佳实现落地。
文章目录 一、navigator.clipboard.writeText二、方案落地总结 一、navigator.clipboard.writeText navigator.clipboard.writeText 是一个Web API,它允许网页脚本将文本数据写入用户的系统剪贴板。这个API是异步的,并且设计用于提高安全性和用户体验&a…...

x86-64数据传输指令
关于汇编语言一些基础概念的更详细的介绍,可移步MIPS指令集(一)基本操作_mips指令 sw-CSDN博客 该指令集中一个字2字节。 该架构有16个64位寄存器,名字都以%r开头,每个寄存器的最低位字节,低1~2位字节&…...

LigerUI在MVC模式下的响应原则
LigerUI是基于jQuery的UI框架,故他也是遵守jQuery的开发模式,但是也具有其特色的侦听函数,那么当LigerUI作为View层的时候,他所发送后端的必然是表单的数据,在此我们以俩个div为例: {Layout "~/View…...

java CountDownLatch和CyclicBarrier
专栏系列文章地址:https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标: 理解CountDownLatch和CyclicBarrier的使用,主要是复习Aqs 另外工作中用到CountDownLatch的地方还很多,一般是完成某些事情才能继续某…...

力扣动态规划-17【算法学习day.111】
前言 ###我做这类文章一个重要的目的还是给正在学习的大家提供方向(例如想要掌握基础用法,该刷哪些题?建议灵神的题单和代码随想录)和记录自己的学习过程,我的解析也不会做的非常详细,只会提供思路和一些关…...

读书笔记-《你的灯亮着吗?》
这是一本短篇且有趣的书,通过一些小故事讨论了下解决问题时会遇到的困难。 01 为什么难以定义问题 常言道,办法总比问题多,但往往我们在一开始就没有定义好问题: 在学校时,校园教育使得我们会紧紧抓住看起来像是“问题…...

MATLAB实现多种群遗传算法
多种群遗传算法(MPGA, Multi-Population Genetic Algorithm)是一种改进的遗传算法,它通过将种群分成多个子种群并在不同的子种群之间进行交叉和交换,旨在提高全局搜索能力并避免早期收敛。下面是多种群遗传算法的主要步骤和流程&a…...

tf.Keras (tf-1.15)使用记录3-model.compile方法
model.compile 是 TensorFlow Keras 中用于配置训练模型的方法。在开始训练之前,需要通过这个方法来指定模型的优化器、损失函数和评估指标等。 注意事项: 在开始训练(调用 model.fit)之前,必须先调用 model.compile()。 1 基本…...

Prometheus 中的 Exporter
在 Prometheus 生态系统中,Exporter 扮演着至关重要的角色,它们负责从不同的服务或系统中收集和暴露度量数据。本文将详细介绍 Exporter 的概念、类型以及如何有效使用它们将 Prometheus 集成到各种系统中进行监控。 什么是 Exporter? Exporter 是一段软件,它从应用程序或…...

网工_HDLC协议
2025.01.25:网工老姜学习笔记 第9节 HDLC协议 9.1 HDLC高级数据链路控制9.2 HDLC帧格式(*控制字段)9.2.1 信息帧(承载用户数据,0开头)9.2.2 监督帧(帮助信息可靠传输,10开头…...

leetcode 2563. 统计公平数对的数目
题目如下 数据范围 显然数组长度最大可以到10的5次方n方的复杂度必然超时,阅读题目实际上就是寻找两个位置不同的数满足不等式即可(实际上i j无所谓是哪个 我们只要把位置小的想成i就行)。 按照上面的思路我们只需要排序数组然后从前往后遍历数组然后利用二分查找…...

Debian 10 中 Linux 4.19 内核在 x86_64 架构上对中断嵌套的支持情况
一、中断嵌套的定义与原理 中断嵌套是指在一个中断处理程序(ISR)正在执行的过程中,另一个更高优先级的中断请求到来,系统暂停当前中断处理程序,转而处理新的高优先级中断。处理完高优先级中断后,系统返回到原来的中断处理程序继续执行。这种机制允许系统更高效地响应紧急…...