Nodejs的使用

news2024/11/15 17:45:50

1.安装nodejs服务器。

java 项目可以运行在 tomcat 服务器,开始完成前后端完全分离。前端有自己独立的工程。我们需
要把前端独立的工程运行起来。 --- 运行在 nodejs 服务器下。
理解为 tomcat 服务器
安装成功后在命令窗口查看

1.1 安装npm

java 项目需要依赖 jar ,安装 maven 。 前端项目需要依赖第三方的插件。比如 axios elementui
echarts 前端也需要一个管理组件的软件。 npm. 如果 package.json 文件 类似于 pom.xml 文件。
npm 通过该文件 package.json 文件安装依赖的插件。
如果安装了 node 默认 安装了 npm.
验证 :
npm -v

2. 安装vue cli的脚手架

帮你创建前端项目工程。它的安装需要依赖上面的npm

2.1 安装vue cli

npm install -g @vue/cli
-g: global 全局
验证是否安装成功 :
vue --version

3. 使用vuecli搭建vue前端项目

第一种使用命令 : vue create
第二种使用图形化界面: vue ui

3.1 安装相应的插件--elementui

安装插件有两种方式 :
第一种使用命令 : npm i element-ui -S
第二种使用图形化 :

2.2 安装axios依赖

发送异步请求的。
第一种命令 : npm i -S axios
第二种图形化 : 如下

4. 使用客户端软件打开vue工程

vscode [ 专业的前端工具 ]
webstorm [idea 团队开发的软件 -- 只要会使用 idea 那么也会使用该工具 ]
hbuilder [ 适合前端 ]
webstorm 中启动该项目
vue 原理

5. 组件化开发

组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构 [html] 、样式 [css] 、行为
[js]
好处:便于维护,利于复用 提升开发效率。
组件分类:普通组件、根组件。
比如:下面这个页面,可以把所有的代码都写在一个页面中,但是这样显得代码比较混乱,难易维
护。咱们可以按模块进行组件划分

6. 根组件 App.vue

1. 根组件介绍
整个应用最上层的组件,包裹所有普通小组件
2. 组件是由三部分构成
三部分构成
template :结构 (有且只能一个根元素)
script: js 逻辑
style : 样式 ( 可支持 less ,需要装包 )
让组件支持 less
1 style 标签, lang="less" 开启 less 功能
2 ) 装包 : yarn add less less-loader -D 或者 npm i less less-loader -D

7. 普通组件的注册使用

普通组件的注册有两种方式。
1 )局部注册:
2 )全局注册
  普通组件的注册使用 - 局部注册
1. 特点:
只能在注册的组件内使用
2. 步骤:
1. 创建 .vue 文件(三个组成部分)
2. 在使用的组件内先导入再注册,最后使用
3. 使用方式:
当成 html 标签使用即可 < 组件名 ></ 组件名 >
4. 注意:
组件名规范 —> 大驼峰命名法, 如 AAAHeader
5. 语法:
// 导入需要注册的组件
// import 组件对象 from '.vue文件路径'
import AAAHeader from './components/AAAHeader'
export default {• // 局部注册
components: {
'组件名': 组件对象,
AAAHeader:AAAHeader,
AAAHeader
}
}
  普通组件的注册使用 - 全局注册
1. 特点:
全局注册的组件,在项目的 任何组件 中都能使用
2. 步骤
1. 创建 .vue 组件(三个组成部分)
2. main.js 中进行全局注册
3. 使用方式
当成 HTML 标签直接使用
< 组件名 ></ 组件名 >
4. 注意
组件名规范 —> 大驼峰命名法, 如 AAAHeader
5. 语法
Vue.component(' 组件名 ', 组件对象 )

8. 组件通信

1. 什么是组件通信?
组件通信,就是指 组件与组件 之间的 数据传递
组件的数据是独立的,无法直接访问其他组件的数据。
想使用其他组件的数据,就需要组件通信
2. 组件之间如何通信
3. 组件关系分类
1. 父子关系
2. 非父子关系
5. 父子通信流程
1. 父组件通过 props 将数据传递给子组件 [ 重点 ]
2. 子组件利用 $emit 通知父组件修改更新
6. 父向子通信代码示例
父组件通过 props 将数据传递给子组件
父组件 App.vue
父向子传值步骤
1. 给子组件以添加属性的方式传值
2. 子组件内部通过 props 接收
3. 模板中直接使用 props 接收的值

9.路由介绍

9.1.思考

单页面应用程序,之所以开发效率高,性能好,用户体验好
最大的原因就是: 页面按需更新
比如当点击【发现音乐】和【关注】时, 只是更新下面部分内容 ,对于头部是不更新的
要按需更新,首先就需要明确: 访问路径 组件 的对应关系!
0. 子组件向父组件传值
1. 什么是路由
2. 如何配置路由
3. 路由传参
4. 前端访问后端代码
5 访问路径 和 组件的对应关系如何确定呢? 路由
路由 : 就是路径和组件建立关联关系的过程。

9.2 vue中如何使用路径

我们刚才演示了路由的基本使用。 --- 通过在地址栏输入路由地址,在根据路由配置找到对应的组
件,并渲染该组件。
1 )第一种 : 声明式路径
<router-link to="/login">登录</router-link>&nbsp;&nbsp;&nbsp;&nbsp;
2 )第二种 : 编码式路径
methods:{
my(){
//路由跳转---编码式路由
this.$router.push("/register")
}
}

9.3. 路由传递

9.3.1 声明路由--查询参数

类似于之前 路由也是这种模式
对应的组件接受查询参数。
this.$route.query. 参数名

9.3.2 声明路由--动态路由参数

2. 路由配置时 : { path="/ 路由路径 /: 参数名 "}
3. 相应的组件中接受参数值 this.$route.params. 参数名

9.3.3 查询参数和动态路由参数

1. 查询参数传参 ( 比较适合传 多个参数 )
1. 跳转: to="/path? 参数名 = & 参数名 2= "
2. 获取: this.$route.query. 参数名
2. 动态路由传参 ( 优雅简洁 ,传单个参数比较方便 )
1. 配置动态路由: path: "/path/: 参数名 "
2. 跳转: to="/path/ 参数值 "
3. 获取: this.$route.params. 参数名
<router-link to="/login"> 登录 </router-link>    
1
methods:{
my(){
// 路由跳转 --- 编码式路由
this.$router.push("/register")
}
}
const originalPush = VueRouter.prototype.push
// 修改原型对象中的 push 方法
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}
5 注意:动态路由也可以传多个参数,但一般只传一个
准备传递参数 --- 查询参数和动态路由参数

9.3.4 编码路由--查询参数

my(){
//路由跳转---编码式路由
//简写版:
//this.$router.push("/my?name=ldh&age=18")
//完整版
this.$router.push({
path: "/my",
query:{
name:"张嘉琪",
age:88
},
})
}
接受:
created() {
this.name=this.$route.query.name;
this.age=this.$route.query.age;
}

9.3.5 编码路由--动态路由参数

//动态路由参数--简介版
// this.$router.push("/my/zcj")
this.$router.push(
{
// path:"/my", //表示路由的path的值
name:"My", //表示路由的名称
params:{
key:"wzy"
}
}
)
//path不能和params配合使用。 name可以和params配合使用
接受参数
//create()
created() {
this.name=this.$route.params.key;
// this.name=this.$route.query.name;
// this.age=this.$route.query.age;
}

当出现NavigationDuplicated: Avoided redundant navigation to current location: "/register".问题时

解决方案 : /router/index.js 添加如下代码 Vue-Router3.0
const originalPush = VueRouter.prototype.push
//修改原型对象中的push方法
VueRouter.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err)
}

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

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

相关文章

finalshell连接kali-Linux失败问题略谈

如果你正在使用fianlshell或者xshell等终端软件远程连接Linux进行工作&#xff0c;但是突然有一天&#xff0c;你死活连不上了&#xff0c;报错提示如下&#xff1a; java.net.ConnectException: Connection refused: connect 就像这样&#xff1a; 哪怕是重装虚拟机&#xff0…

HardSignin _ 入土为安的第十二天

有壳 55 50 58 用010 把vmp改成upx ctrlf2,查找main函数 点第三个 Ctrlx交叉引用 把花指令改了90 一共三处 找db按c 找函数按p封装&#xff0c;按f5反编译函数 smc 用pythonida绕一下 from ida_bytes import * addr 0x00401890 for i in range(170):patch_byte(addr i,…

排序算法----冒泡,插入,希尔,选择排序

冒泡排序 原理 冒泡排序实际上是交换排序&#xff0c;将大的数据通过交换的方式排到一边&#xff0c;依次进行 代码实现 void Swap(int* p1, int* p2) {int temp *p1;*p1 *p2;*p2 temp; }void BullerSort(int* a, int n) {for (int end n - 1; end > 0; end--){for …

卷积神经网络理论(CNN)·基于tensorflow实现

传统神经网络的输入是一维的数据(比如28*28的图片&#xff0c;需要转化为一维向量)。 而卷积神经网络的输入是一个三维的(比如RGB)。 结构 卷积神经网络有以下结构&#xff1a; 输入层卷积层池化层全连接层 输入层 顾名思义&#xff0c;输入层就是输入数据(可以是图片等数…

仅缺一位作者,年内书号

《工程测量学概论》缺第三 《风景园林设计与施工技术研究》缺第二 《对外汉语教学方法与实践研究》缺第三 《基于视觉传达设计下的民间艺术发展研究》缺第三 《英语教学基础与翻译技巧》缺第三 《博物馆学体系与博物馆探究学习》缺第三 《新时期高校辅导员工作与队伍建设研究》…

迈向数智金融:机器学习金融科技新纪元的新风采

个人名片&#xff1a; &#x1f43c;作者简介&#xff1a;一名大三在校生&#xff0c;喜欢AI编程&#x1f38b; &#x1f43b;‍❄️个人主页&#x1f947;&#xff1a;落798. &#x1f43c;个人WeChat&#xff1a;hmmwx53 &#x1f54a;️系列专栏&#xff1a;&#x1f5bc;️…

怎么通过 ssh 访问远程设备

文章目录 什么是 SSH背景环境配置前置准备在 linux 系统中安装 ssh 组件 什么是 SSH ssh 全称是 Secure Shell, 有时候也被叫做 Secure Socket Shell, 这个协议使你能通过命令行的方式安全的连接到远端计算机。当连接建立就会启动一个 shell 会话&#xff0c;这时你就能在你的…

Kubernetes中间件监控指标解读

监控易是一款功能强大的IT监控软件&#xff0c;能够实时监控和分析各种IT资源和应用的状态&#xff0c;为企业提供全面而深入的监控服务。在Kubernetes中间件监控方面&#xff0c;监控易提供了详尽的监控指标&#xff0c;帮助用户全面了解Kubernetes集群的运行状态和性能表现。…

一键PDF翻译成中文,划重点轻松get

现在信息多得跟海一样&#xff0c;PDF文件里全是宝贵的资料和文章。但是&#xff0c;看着满屏幕的外国字&#xff0c;你是不是也头疼过&#xff1f;别发愁&#xff0c;今天咱们就来好好聊聊pdf翻译成中文的工具&#xff0c;帮你轻松搞定语言障碍&#xff0c;一点按钮&#xff0…

电测量数据交换DLMS∕COSEM组件第61部分:对象标识系统(OBIS)(上)

1.范围 GB/T 17215.6的本部分规定了对象标识系统(OBIS)的总体结构并将测量设备中的所有常用数据项映射到其标识代码。 OBIS为测量设备中的所有数据都提供唯一的标识符,不仅包括测量值,而且还包括仪表设备的配置或获取测量设备运行状态的抽象数据。本部分定义的ID代码用作标…

论文解析——CRNN算法

论文paper地址&#xff1a;An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition 本文的主要目的是识别图片中的序列文字的识别。CRNN的主要贡献在于提出了一个网络架构&#xff0c;这种架构具有以下…

基于飞腾平台的Kafka移植与安装

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

java基础 之 集合与栈的使用(一)

文章目录 集合特点&#xff08;从整体性来看&#xff09;区别List接口&#xff08;一&#xff09;实现类&#xff1a;ArrayList&#xff08;二&#xff09;实现类&#xff1a;LinkedList 集合 java集合可分为Set、List、Queue和Map四种体系。其中List、Set、Queue均继承自Coll…

ADC静态误差

0 前言 图1 表示测量数据精密度高&#xff0c;但准确度较差&#xff1b;图2 表示测量数据的准确度高&#xff0c;但精密度差&#xff1b;图3 表示测量数据精密度和准确度都好&#xff0c;即精确度高。 1 简介 模数转换器&#xff08;ADC&#xff09;广泛用于各种应用中&…

Spring Cloud开发实战(一)- 搭建一个Eureka+Feign+LoadBalancer 项目

Spring Cloud开发实战&#xff08;一&#xff09;- 搭建一个EurekaFeignLoadBalancer 项目 文章目录 Spring Cloud开发实战&#xff08;一&#xff09;- 搭建一个EurekaFeignLoadBalancer 项目0.内容简介1.Eureka服务注册与发现1.1.什么是服务注册与发现1.2.Eureka注册中心1.2.…

Android 系统与SDK和JDK版本对照表

Android 系统与SDK和JDK版本对照表 传说中的兼容问题是指在高版本 SDK 平台开发的软件&#xff0c;可能在低版本 Android 系统中运行时出现各种问题。而低版本 SDK 开发的软件在高版本 Android 系统中运行时基本没有兼容问题的。 Android版本SDK/API版本JDK版本备注Android 14…

springboot宠物相亲平台-计算机毕业设计源码16285

目 录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3论文结构与章节安排 2 开发环境及相关技术介绍 2.1 MySQL数据库的介绍 2.2 B/S架构的介绍 2.3 Java语言 2.4 SpringBoot框架 3 宠物相亲平台系统分析 3.1 可行性分析 3.1.1 技术可行性分析 3.1.2 经济…

unplugin-vue-components 插件配置 忽略 部分目录下的组件自动导入

背景 vue3 项目 为了省略 第三方库ui 组件 全局组件的注册代码&#xff0c;使用了 unplugin-vue-components 插件 原理 组件识别 在编译阶段&#xff0c;unplugin-vue-components 会扫描 Vue 单文件组件&#xff08;.vue 文件&#xff09;的模板部分&#xff0c;识别出所有使…

从零开始掌握进程间通信:管道、信号、消息队列、共享内存大揭秘

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货! 大家好,我是小米,今天我们来聊一聊操作系统中的一个重要话题——进程间通信(Inter-Process Communication,简称IPC)。IPC是指在不同进程间传递数据…

01.docker安装、配置、常用命令、dockerfile、镜像上传下载和Harbor仓库搭建

1.docker安装 1.1移除旧版本 yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine1.2安装yum-utils获取yum-config-manager [rootlocalhost ~]# yum install -y yum-utils …