前端开发入门一
前端开发入门一
已经有若干年没有web相关的代码了,以前主要是用C/C++编写传统的GUI程序,涉及界面、多线程、网络等知识点。最近准备开发一个浏览器插件,才发现业界已经换了天地,只得重新开始学习了,好在基本的学习能力还在,而且有AI加持,应该不是太大问题,Let’s get started.
开发环境
开发工具:选择了vsCode,是微软开发的一个代码编辑器,可以通过插件来增加对不同语言的工具的支持,整体来看与eclipse相似。之前教C时总是推荐学生用visual studio,后来发现对于初学者,VS尤其是后面的界面越来越复杂,软件越做越大,对于他们来说太复杂,于是改成Dev C++,再后来,直接用了OJ平台布置作业,结果很多学生直接在Web里面写代码,连调试机会都没有了,有问题直接甩给老师,只能一声叹息,现在学生…
回到正题,发现现在开发web程序的工具丰富多了,要学的知识也多,下面简单列一些,都是这几天接触的:
Node.js
个人理解是一个类似于web服务器的后台工具,还是用官网定义说吧:Node.js 是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境,用于在服务器端运行JavaScript。
在Windows下,直接上官方下载安装即可,这样免去了安装IIS或者Apache服务器,等到真的应用时再安装,方便了开发。安装成功后,在VS的terminal里面输入:
node -v
如果能显示其版本号,则表示安装成功。
优点包括:
- 内置 npm(Node Package Manager),拥有全球最大的开源库生态系统。
- 跨平台:支持Windows、Linux、macOS 等操作系统。
- 事件驱动与非阻塞 I/O:避免线程阻塞,适合高并发场景(如聊天服务、API 网关)。
TypeScript
- 是一种由微软开发的开源编程语言,它是 JavaScript 的一个超集,为 JavaScript 添加了可选的静态类型和基于类的面向对象编程。
- 设计目标是为了更好地支持大型应用程序的开发,这样就好理解了,就好比C++之于C,通过类型系统来提高代码的可维护性和可读性;
- TypeScript 的编译器通常被简称为 tsc,它是将 TypeScript 代码转换为 JavaScript 代码的工具。——这一点又有点象Java语言。
- 增加了OOP的概念,包括类、接口模块等,并且允许声明变量类型。
JavaScript 框架
早期好像是Jquery,最近下载了一个JQuery项目,发现已经是过去时了,脚本语言发展真快,现在流行的是React、Vue、Angular。
React
React 是一个由 Meta(原Facebook) 开发的开源 JavaScript 库,专注于构建高效、灵活的用户界面(UI)。它于 2013 年发布,现已成为全球最流行的前端框架之一,尤其适合构建复杂的大型单页面应用(SPA)。
核心特征
- 将 UI 拆分为独立、可复用的组件,每个组件管理自己的状态和逻辑。包括函数组件(新)和类组件。
- JSX(JavaScript XML):一种类似 HTML 的语法扩展,允许在 JavaScript 中直接编写 UI 结构。
- 虚拟DOM(Virtual DOM):避免直接操作真实 DOM 的性能损耗。
React 的生态系统
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
| 工具/库 | 用途 | 备注 |
|---|---|---|
| React Router | ‘实现前端路由(SPA 页面切换)’ | |
| Redux | 全局状态管理(适合复杂应用) | “” |
| Next.js | 服务端渲染(SSR)和静态站点生成 | |
| Next.js | 服务端渲染(SSR)和静态站点生成 | |
| Vite | 极速构建工具(替代 Webpack) | |
| Material-UI | UI 组件库(快速搭建美观界面) |
官方文档:https://react.dev(新版文档)
教程推荐:
- 官方教程:Tic-Tac-Toe 游戏教程
- 免费课程:Scrimba 的 React 入门
Vue
Vue 是一款用于构建用户界面(UI)的渐进式 JavaScript 框架,专注于简化Web 应用的开发,适合中小型项目快速开发。
- Vue 自动追踪数据变化,并实时更新视图。——所见即所得!
- 组件化开发:将Web页面拆分为独立、可复用的组件,每个组件包含自己的逻辑和样式。——那不就是向传统GUI开发那一套靠齐,这是好事。
- 虚拟 DOM(Document Object Model,代表性的如HTML):通过虚拟 DOM 高效更新页面,仅渲染变化的部分,提升性能。——可以理解为画图程序,里面仅更新部分区域。
- 最新版本是Vue 3:支持 Composition API、TypeScript 等。
- 官方文档:中文VueJs/英文VueJs
react vs Vue

总结:React 凭借其组件化、高性能和强大的生态,成为构建现代Web 应用的首选之一, 适合中大型项目,但对新手需要一定学习成本。若追求快速上手,可考虑 Vue;若需要极致灵活性和跨平台支持,React 是更优选择。
其它一些工具
- Webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler)。它的主要目的是将各种资源(如HTML文件、CSS样式表、图片、JavaScript文件等)打包成一个或多个bundle,以便于在浏览器中使用。
Express
Express 是一个快速、无配置、极简的 Node.js Web 应用框架,它为 Web 和移动应用程序提供了一组强大的功能,使得构建单页、多页或混合 Web 应用程序变得更加容易。Express 是 Node.js 最流行的中间件框架之一,用于处理网站的路由、请求和响应等基础任务。
Mongoose
Mongoose 是一个为 Node.js 环境设计的 MongoDB 对象模型工具库。
- 它管理着数据验证、业务逻辑以及数据之间的关系,并提供了一个简单的接口来与 MongoDB 数据库进行交互。
- Mongoose 是一个对象数据模型(ODM)库,它封装了 MongoDB 的驱动,使得与数据库的交互更加容易和直观。
svg-captcha:用于生成验证码
dotenv:管理环境变量
- 关于以上资料,多数来自于AI问答!
相关文章:
前端开发入门一
前端开发入门一 已经有若干年没有web相关的代码了,以前主要是用C/C编写传统的GUI程序,涉及界面、多线程、网络等知识点。最近准备开发一个浏览器插件,才发现业界已经换了天地,只得重新开始学习了,好在基本的学习能力还…...
Linux(Centos 7.6)命令详解:head
1.命令作用 将每个文件的前10行打印到标准输出(Print the first 10 lines of each FILE to standard output) 2.命令语法 Usage: head [OPTION]... [FILE]... 3.参数详解 OPTION: -c, --bytes[-]K,打印每个文件的前K字节-n, --lines[-],打印前K行而…...
HTTP请求X-Forwarded-For注入
场景描述 当你对用户网站进行的爆破或者sql注入的时候,为了防止你影响服务器的正常工作,会限制你访问,当你再次访问时,会提示你的由于你的访问频过快或者您的请求有攻击行为,限制访问几个小时内不能登陆,并且重定向到一个错误友好提示页面。 由此可以发起联想?http是无状…...
《生息之地》入围柏林主竞赛,总制片人蒋浩助力青年导演走向国际
当地时间2月13日,第75届柏林国际电影节正式开幕。凤凰传奇影业出品的电影《生息之地》已入围主竞赛单元,是本届电影节最受瞩目的华语作品之一,电影总制片人蒋浩、导演霍猛、监制姚晨等主创一同亮相开幕红毯。《生息之地》是导演霍猛继《过昭关…...
实践记录--电脑故障的问题定位和处理回顾--磁盘故障已解决
快速回顾 01-关于系统异常启动的展示信息,目前已经可以通过拍照翻译的方式辅助理解; 02-关于固态磁盘的故障定位,可以尝试通过SSD-Z工具查看分区引导记录信息,通过diskgenius工具进行坏道检测和修复; 03-体验了diskge…...
uni-app 学习(一)
一、环境搭建和运行 (一)创建项目 直接进行创建 (二)项目结构理解 pages 是页面 静态资源 打包文件,看我们想输出成什么格式 app.vue 页面的入口文件 main.js 是项目的入口文件 存放对打包文件的配置 pages 存放整…...
Ubuntu 22.04 Desktop企业级基础配置操作指南
一、网络配置 cd /etc/netplan vi 00-installer-config.yaml 设置如下所示: network:version: 2ethernets:eth0: # 替换为你的实际网络接口名称,如 ens33, enp0s3 等dhcp4: noaddresses:- 192.168.1.100/24 # 静态IP地址和子网掩码gateway4: 192.168.1.254 # 网关地址n…...
QILSTE H4-105LB/5M高亮蓝光LED灯珠 发光二极管LED
H4-105LB/5M:高亮蓝光LED的复杂特性与突发性挑战 在现代电子设备的复杂世界中,H4-105LB/5M型号的高亮蓝光LED以其独特的参数和复杂的特性脱颖而出。这款LED不仅在尺寸上做到了极致精巧,还在光电参数、可靠性测试和实际应用中展现出令人困惑的…...
【Elasticsearch】Elasticsearch检索方式全解析:从基础到实战(一)
文章目录 引言Elasticsearch检索方式概述两种检索方式介绍方式一:通过REST request uri发送搜索参数方式二:通过REST request body发送搜索参数(1)基本语法格式(2)返回部分字段(3)ma…...
封装neo4j的持久层和服务层
目录 持久层 mp 模仿: 1.抽取出通用的接口类 2.创建自定义的repository接口 服务层 mp 模仿: 1.抽取出一个IService通用服务类 2.创建ServiceImpl类实现IService接口 3.自定义的服务接口 4.创建自定义的服务类 工厂模式 为什么可以使用工厂…...
基于Spring Boot的宠物爱心组织管理系统的设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
error: conflicting types for ‘SSL_SESSION_get_master_key’
$ make make all-am make[1]: Entering directory ‘/home/linuxuser/tor’ CC src/lib/tls/libtor_tls_a-tortls_openssl.o In file included from src/lib/tls/tortls_openssl.c:61: ./src/lib/tls/tortls_internal.h:55:8: error: conflicting types for ‘SSL_SESSION_get_…...
测试狗参加国家超级计算成都中心2024年度用户大会
近日,国家超级计算成都中心举办了“数启新篇算领未来”2024年度用户大会。这场盛会汇聚了来自政府部门、科研院所及企业界的百余位领导专家及用户代表,共同探讨高性能计算在科技创新中的赋能作用,探索超算融合领域的创新发展之路。其中&#…...
从2025年起:数字化建站PHP 8.1应成为建站开发的基准线
在数字化浪潮席卷全球的今天,PHP语言仍然保持着Web开发领域的核心地位。根据W3Techs最新统计,PHP驱动着全球78.9%的已知服务端网站。当时间指向2025年,这个拥有28年历史的编程语言将迎来新的发展里程碑——PHP 8.1版本应成为网站开发的最低基准要求,这不仅是技术迭代的必然…...
飞牛OS与昔映OS深度对比
无论是备份珍贵的照片、视频,搭建个人专属的影视库,还是实现高效的文件共享与协作,NAS 都能成为我们的得力助手。而在众多的 NAS 系统中,飞牛 OS 与昔映 OS 凭借各自的特点,吸引了不少用户的关注。今天,咱们…...
vscode本地和远程对应分支没有同步提交数量
1、问题: 下载了最新的vscode后发现本地分支不显示跟远端分支的提交数量,每次都要手动拉取,如下图 2、解决 在vscode点击左下角设置图标,选择settings,直接搜索git的配置 果然自动拉取的配置设置为false,调整为true即…...
通过docker启用rabbitmq插件
创建文件,docker-compose.yml services:rabbitmq:image: rabbitmq:4.0-managementports:- "5672:5672"- "15672:15672"volumes:- ./data/rabbitmq/data:/var/lib/rabbitmq # 持久化数据- ./data/rabbitmq/plugins/rabbitmq_delayed_message_ex…...
DeepSeek计算机视觉(Computer Vision)基础与实践
计算机视觉(Computer Vision)是人工智能领域的一个重要分支,专注于让计算机理解和处理图像和视频数据。计算机视觉技术广泛应用于图像分类、目标检测、图像分割、人脸识别等场景。DeepSeek提供了强大的工具和API,帮助我们高效地构建和训练计算机视觉模型。本文将详细介绍如…...
哪些专业跟FPGA有关?
FPGA产业作为近几年新兴的技术领域,薪资高、待遇好,吸引了大量的求职者。特别是对于毕业生,FPGA领域的岗位需求供不应求。那么,哪些专业和FPGA相关呢? 哪些专业跟FPGA有关? 微电子学与固体电子学、微电子科…...
【STM32系列】利用MATLAB配合ARM-DSP库设计IIR数字滤波器(保姆级教程)
ps.源码放在最后面 设计FIR数字滤波器可以看这里:利用MATLAB配合ARM-DSP库设计FIR数字滤波器(保姆级教程) 设计IIR滤波器 MATLAB配置 设计步骤 首先在命令行窗口输入"filterDesigner",接着就会跳出以下界面…...
日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻
在如今就业市场竞争日益激烈的背景下,越来越多的求职者将目光投向了日本及中日双语岗位。但是,一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧?面对生疏的日语交流环境,即便提前恶补了…...
C++:std::is_convertible
C++标志库中提供is_convertible,可以测试一种类型是否可以转换为另一只类型: template <class From, class To> struct is_convertible; 使用举例: #include <iostream> #include <string>using namespace std;struct A { }; struct B : A { };int main…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
Objective-C常用命名规范总结
【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名(Class Name)2.协议名(Protocol Name)3.方法名(Method Name)4.属性名(Property Name)5.局部变量/实例变量(Local / Instance Variables&…...
Neo4j 集群管理:原理、技术与最佳实践深度解析
Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...
ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
