Web应用开发指南
一、引言
随着互联网的迅猛发展,Web应用已深度融入日常生活的各个方面。为满足用户对性能、交互与可维护性的日益增长的需求,开发者需要一整套高效、系统化的解决方案。在此背景下,前端框架应运而生。不同于仅提供UI组件的工具库,本文所讨论的前端框架指的是那些能够支持构建完整Web应用的开发平台,包括路由、状态管理、构建流程优化等功能。本文将系统梳理当前主流前端框架的发展情况,并结合其生态衍生框架、应用场景与技术趋势进行深入剖析。
二、主流前端框架详解
1. React
-
创建者:Facebook(Jordan Walke)
-
发布时间:2013年5月开源
-
GitHub Stars:约235k(截至2025年)
-
衍生框架:Next.js(用于服务端渲染与静态网站生成)
简介:React 是一个用于构建用户界面的 JavaScript 框架(起初定位为库),以组件化开发和声明式编程著称。通过 Virtual DOM 技术,它在性能与开发体验之间实现了良好平衡。
优点:
-
组件化和函数式编程理念使代码更具可重用性与可维护性;
-
Virtual DOM 提高渲染性能;
-
强大的生态系统(如Redux、React Router);
-
与Next.js结合可实现服务端渲染(SSR)与静态站点生成(SSG)。
2. Vue.js
-
创建者:尤雨溪(Evan You)
-
发布时间:2014年2月
-
GitHub Stars:约209k(截至2025年)
-
衍生框架:Nuxt.js(支持 SSR、SSG 的全栈开发框架)
简介:Vue 是一款渐进式 JavaScript 框架,设计轻巧灵活,易于学习和上手。它采用响应式数据绑定与组件化开发,适用于从简单页面到大型复杂应用的各种场景。
优点:
-
语法直观,易于入门;
-
轻量且灵活,可渐进式引入;
-
响应式系统性能优越;
-
Nuxt.js 支持服务端渲染与静态生成,拓展场景更多。
3. Angular
-
创建者:Google
-
发布时间:2016年(Angular 2+,完全重写版)
-
GitHub Stars:约97k(截至2025年)
-
衍生框架:Ionic(移动端开发框架,支持Angular集成)
简介:Angular 是一个基于 TypeScript 的全功能前端框架,提供完整的开发生命周期支持。适合构建复杂的企业级单页应用(SPA)。
优点:
-
完善的结构与依赖注入机制;
-
类型安全,便于大型项目协作;
-
内置路由、表单、HTTP、国际化等;
-
CLI 工具提升开发效率与一致性;
-
与 Ionic 深度集成,支持跨平台开发。
4. Ember.js
-
创建者:Yehuda Katz 等,最初基于 SproutCore
-
发布时间:2011年
-
GitHub Stars:约22k(截至2025年)
简介:Ember.js 是一个全面的 MVC 前端框架,强调“约定优于配置”,为大型应用开发提供稳定统一的开发规范与强大功能支持。
优点:
-
工程结构统一,适合大型协作项目;
-
强大的路由系统与数据层(Ember Data);
-
命令行工具 Ember CLI 提供完整项目生命周期管理;
-
社区维护的官方最佳实践,有助于规范开发。
5. Svelte
-
创建者:Rich Harris
-
发布时间:2016年(2020年发布Svelte 3)
-
GitHub Stars:约82k(截至2025年)
-
衍生框架:SvelteKit(支持SSR/SSG的全栈解决方案)
简介:Svelte 采用“编译时框架”的创新方式,不依赖虚拟 DOM,而是在构建阶段将组件编译为高度优化的 JavaScript 代码,减少运行时开销。
优点:
-
极致的性能,首次加载更快;
-
无虚拟DOM,运行时代码更少;
-
简洁语法,更少模板与逻辑分离;
-
SvelteKit 支持全栈开发,包括路由、SSR 与静态导出。
6. Preact
-
创建者:Jason Miller
-
发布时间:2015年
-
GitHub Stars:约37k(截至2025年)
简介:Preact 是一个轻量级的 React 替代框架,兼容 React API,适合对性能与体积要求极高的场景,尤其适合嵌入式应用或移动端。
优点:
-
体积仅约3KB(gzip后),远小于React;
-
与React生态高度兼容,迁移成本低;
-
性能优越,适合低资源设备;
-
可以配合 preact-compat 支持 React 生态组件。
7. Aurelia
-
创建者:Rob Eisenberg(曾参与Angular团队)
-
发布时间:2015年
-
GitHub Stars:约1.4k(截至2025年)
简介:Aurelia 是一个现代化、模块化、标准驱动的前端框架,强调与Web标准的契合度。它采用ES模块机制构建项目,拥有灵活的数据绑定系统和优雅的架构设计。
优点:
-
原生支持现代JS标准,无需自定义语法;
-
双向数据绑定灵活、性能优越;
-
架构清晰,适合中大型应用;
-
插件机制强大,易于扩展。
8. Ionic(结合Angular/Vue/React)
-
创建者:Max Lynch, Ben Sperry, Adam Bradley(Ionic团队)
-
发布时间:2013年
-
GitHub Stars:约51k(截至2025年)
简介:Ionic 是一套用于构建跨平台移动应用的前端框架,基于 Web 技术构建,支持与 Angular、React 或 Vue 集成,并使用 Capacitor/Cordova 实现原生功能调用。
优点:
-
一套代码跨平台(iOS/Android/Web);
-
丰富UI组件库,提升开发效率;
-
支持多框架集成,灵活选择;
-
配套工具完整,社区活跃。
9. Next.js(基于React)
-
创建者:Vercel(创始人 Guillermo Rauch)
-
发布时间:2016年
-
GitHub Stars:约131k(截至2025年)
简介:Next.js 是基于 React 的全栈框架,提供服务端渲染、静态生成、API 路由等功能,广泛应用于内容驱动与商业级项目。
优点:
-
出色的性能优化(如 ISR、边缘渲染);
-
内置文件路由与数据预取;
-
极佳的开发者体验;
-
与Vercel平台深度整合,部署便捷。
10. Nuxt.js(基于Vue)
-
创建者:Alexandre Chopin & Sébastien Chopin
-
发布时间:2016年
-
GitHub Stars:约57k(截至2025年)
简介:Nuxt.js 是 Vue 的服务端渲染框架,旨在简化 SSR 与静态网站生成开发流程,适合构建 SEO 友好、高性能的Web应用。
优点:
-
支持多种渲染模式(SSR/SSG/CSR);
-
文件即路由系统,开发体验优越;
-
丰富模块系统提升开发效率;
-
自动代码分割与性能优化特性。
三、技术趋势与发展方向
-
组件化开发:现代前端开发强调高内聚、低耦合的组件划分,提高复用性和可维护性。框架如React、Vue、Svelte都在这方面有深厚积累。
-
移动优先与响应式设计:框架普遍强化响应式支持,如Ionic提供移动原生体验,Svelte与Next.js等优化首次加载时间,增强移动端性能。
-
静态网站生成(SSG)兴起:如 Next.js、Nuxt.js、SvelteKit 等支持在构建时生成静态页面,提高安全性与加载速度。
-
WebAssembly 融合:Wasm技术让C/C++/Rust编写的高性能逻辑能在浏览器运行。未来前端框架可能与Wasm融合,提升性能瓶颈。
-
渐进式 Web 应用(PWA):前端框架与工具(如Ionic、Vue CLI、Next.js)对PWA支持越来越完善,为离线访问和原生体验奠定基础。
四、总结与建议
选择合适的前端框架是Web项目成功的关键。开发者在评估时应考虑以下因素:
-
项目规模与复杂度(大型项目推荐Angular或Ember);
-
团队技术栈与经验(React与Vue生态更成熟);
-
性能优化需求(Svelte、Preact、Next.js等适合高性能场景);
-
部署平台与目标设备(Ionic适合移动端跨平台开发);
-
社区活跃度与文档质量。
持续关注技术趋势,并在实践中尝试多种框架,将有助于构建更加现代、高效的Web应用。
相关文章:
Web应用开发指南
一、引言 随着互联网的迅猛发展,Web应用已深度融入日常生活的各个方面。为满足用户对性能、交互与可维护性的日益增长的需求,开发者需要一整套高效、系统化的解决方案。在此背景下,前端框架应运而生。不同于仅提供UI组件的工具库,…...
Vue3 + TypeScript 实现 PC 端鼠标横向拖动滚动
功能说明 拖动功能: 鼠标按下时记录初始位置和滚动位置拖动过程中计算移动距离并更新滚动位置松开鼠标后根据速度实现惯性滚动 滚动控制: 支持鼠标滚轮横向滚动(通过 wheel 事件)自动边界检测防止滚动超出内容…...
MyBatis的SQL映射文件中,`#`和`$`符号的区别
在MyBatis的SQL映射文件中,#和$符号用于处理SQL语句中的参数替换,但它们的工作方式和使用场景有所不同。 #{} 符号 预编译参数:#{} 被用来作为预编译SQL语句的占位符。这意味着MyBatis会将你传入的参数设置为PreparedStatement的参数,从而防止SQL注入攻击,并允许MyBatis对…...
Python----卷积神经网络(池化为什么能增强特征)
一、什么是池化 池化(Pooling)是卷积神经网络(CNN)中的一种关键操作,通常位于卷积层之后,用于对特征图(Feature Map)进行下采样(Downsampling)。其核心目的是…...
React Native 从零开始完整教程(环境配置 → 国内镜像加速 → 运行项目)
React Native 从零开始完整教程(环境配置 → 国内镜像加速 → 运行项目) 本教程将从 环境配置 开始,到 国内镜像加速,最后成功运行 React Native 项目(Android/iOS),适合新手和遇到网络问题的开…...
SNR8016语音模块详解(STM32)
目录 一、介绍 二、传感器原理 1.原理图 2.引脚描述 三、程序设计 main文件 usart.h文件 usart.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 SNR8016语音模块是智纳捷科技生产的一种离线语音识别模块,设计适合用于DIY领域,开放用户设…...
驱动开发系列54 - Linux Graphics QXL显卡驱动代码分析(一)设备初始化
一:概述 QXL 是QEMU支持的一种虚拟显卡,用于虚拟化环境中的图形加速,旨在提高虚拟机的图形显示和远程桌面的用户体验;QEMU 也称 Quick Emulator,快速仿真器,是一个开源通用的仿真和虚拟化工具,可…...
通过IP计算分析归属地
在产品中可能存在不同客户端,请求同一个服务端接口的场景。 例如小程序和App或者浏览器中,如果需要对请求的归属地进行分析,前提是需要先获取请求所在的国家或城市,这种定位通常需要主动授权,而用户一般是不愿意提供的…...
【网络原理】从零开始深入理解HTTP的报文格式(二)
本篇博客给大家带来的是网络HTTP协议的知识点, 续上篇文章,接着介绍HTTP的报文格式. 🐎文章专栏: JavaEE初阶 🚀若有问题 评论区见 ❤ 欢迎大家点赞 评论 收藏 分享 如果你不知道分享给谁,那就分享给薯条. 你们的支持是我不断创作的动力 . 王子,公主请阅…...
【前缀和】二维前缀和(模板题)
DP35 【模板】二维前缀和 DP35 【模板】二维前缀和 给你一个 n 行 m 列的矩阵 A ,下标从 1 开始,接下来有 q 次查询,每次查询输入 4 个参数 x1 , y1 , x2 , y2。 请输出以 (x1, y1) 为左上角,(x2,y2) 为右下角的子矩阵的和。 输入描述: 第一行包含三个整数 …...
【开源工具】Python打造智能IP监控系统:邮件告警+可视化界面+配置持久化
🌐【开源工具】Python打造智能IP监控系统:邮件告警可视化界面配置持久化 🌈 个人主页:创客白泽 - CSDN博客 🔥 系列专栏:🐍《Python开源项目实战》 💡 热爱不止于代码,热…...
kotlin 过滤 filter 函数的作用和使用场景
1. filter 函数的作用 filter 是 Kotlin 集合操作中的一个高阶函数,用于根据指定条件从集合中筛选出符合条件的元素。 作用:遍历集合中的每个元素,并通过给定的 lambda 表达式判断是否保留该元素。返回值:一个新的集合ÿ…...
Java泛型(补档)
核心概念 Java 泛型是 Java SE 1.5 引入的一项重要特性,它的核心思想是 参数化类型(Parameterized Types),即通过将数据类型作为参数传递给类、接口或方法,使代码能够灵活地处理多种类型,同时保证类型安全性…...
C语言发展史:从Unix起源到现代标准演进
C语言发展史:从Unix起源到现代标准演进 C语言的诞生与早期发展 C语言的起源可以追溯到上世纪70年代初期,但其真正的萌芽始于1969年的夏天。在计算机发展史上,这是一个具有划时代意义的时刻。 当时,Ken Thompson和Dennis Ritchi…...
nginx 代理时怎么更改 Remote Address 请求头
今天工作中遇到用 localhost 访问网站能访问后台 api,但是用本机IP地址后就拒绝访问,我怀疑是后台获取 Remote Address 然后设置白名单了只能 localhost 访问。 想用 nginx 更改 Remote Address server {listen 8058;server_name localhost;loca…...
解决STM32待机模式无法下载程序问题的深度探讨
在现代嵌入式系统开发中,STM32系列微控制器因其高性能、低功耗和丰富的外设资源而广受欢迎。然而,开发者在使用STM32时可能会遇到一个问题:当微控制器进入待机模式后,无法通过调试接口(如SWD或JTAG)下载程序…...
进程、线程、进程间通信Unix Domain Sockets (UDS)
进程、线程、UDS 进程和线程进程间通信Unix Domain Sockets (UDS)UDS的核心适用场景和用途配置UDS的几种主要方式socketpair() 基本配置流程socketpair() 进阶——传递文件描述符 补充socketpair() 函数struct msghdr 结构体struct iovecstruct cmsghdrstruct iovec 、struct m…...
大数据平台与数据仓库的核心差异是什么?
随着数据量呈指数级增长,企业面临着如何有效管理、存储和分析这些数据的挑战。 大数据平台和 数据仓库作为两种主流的数据管理工具,常常让企业在选型时感到困惑,它们之间的界限似乎越来越模糊,功能也有所重叠。本文旨在厘清这两种…...
Hadoop虚拟机中配置hosts
( 一)修改虚拟机的主机名 默认情况下,本机的名称叫:localhost。 我们进入linux系统之后,显示出来的就是[rootlocalhost ~]# 。为了方便后面我们更加便捷地访问这台主机,而不是通过ip地址,我们要…...
a-upload组件实现文件的上传——.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.txt
实现下面的上传/下载/删除功能:要求支持:【.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.txt】 分析上面的效果图,分为【上传】按钮和【文件列表】功能: 解决步骤1:上传按钮 直接上代码: <a-uploadmultip…...
QCefView应用和网页的交互
一、demo的主要项目文件 结合QCefView自带的demo代码 main.cpp #include #include <QCefContext.h> #include “MainWindow.h” int main(int argc, char* argv[]) { QApplication a(argc, argv); // build QCefConfig QCefConfig config; config.setUserAgent(“QCef…...
C++,设计模式,【建造者模式】
文章目录 通俗易懂的建造者模式:手把手教你造电脑一、现实中的建造者困境二、建造者模式核心思想三、代码实战:组装电脑1. 产品类 - 电脑2. 抽象建造者 - 装机师傅3. 具体建造者 - 电竞主机版4. 具体建造者 - 办公主机版5. 指挥官 - 装机总控6. 客户端使…...
Axure疑难杂症:中继器制作下拉菜单(多级中继器高级交互)
亲爱的小伙伴,在您浏览之前,烦请关注一下,在此深表感谢! Axure产品经理精品视频课已登录CSDN可点击学习https://edu.csdn.net/course/detail/40420 本文视频课程记录于上述地址第五章中继器专题第11节 课程主题:中继器制作下拉菜单 主要内容:创建条件选区、多级中继器…...
科研 | 光子技术为人工智能注入新动力
译《Nature》25.4.9 发表文章《A photonic processing boost for AI》 ▶ 基于人工智能(artificial intelligence, AI)的系统正被越来越广泛地应用于从基因数据解码到自动驾驶的各类任务。但随着AI模型的规模和应用的扩大,性能天花板与能耗壁…...
SQL语句练习 自学SQL网 多表查询
目录 Day 6 用JOINs进行多表联合查询 Day 7 外连接 OUTER JOINs Day 8 外连接 特殊关键字 NULLs Day 6 用JOINs进行多表联合查询 SELECT * FROM Boxoffice INNER JOIN movies ON movies.idboxoffice.Movie_id;SELECT * FROM Boxoffice INNER JOIN moviesON movies.idboxoffi…...
北京亦庄机器人马拉松:人机共跑背后的技术突破与产业启示
2025年4月19日,北京亦庄举办了一场具有里程碑意义的科技赛事——全球首个人形机器人半程马拉松。这场人类与20支机器人战队共同参与的21.0975公里竞速,不仅创造了人形机器人连续运动的最长纪录,更成为中国智能制造领域的综合性技术验证平台。…...
大连理工大学选修课——机器学习笔记(6):决策树
决策树 决策树概述 决策树——非参数机器学习方法 参数方法: 参数估计是定义在整个空间的模型 所有训练数据参与估算 所有的检验输入都用相同的模型和参数 非参数方法: 非参数估计采用局部模型 输入空间被分裂为一系列可以用距离度量的局部空间…...
现代前端工具链深度解析:从包管理到构建工具的完整指南
前言 在当今快速发展的前端生态中,高效的工具链已经成为开发者的必备利器。一个优秀的前端工具链可以显著提升开发效率、优化项目性能并改善团队协作体验。本文将深入探讨现代前端开发中最核心的两大工具类别:包管理工具(npm/yarn)和构建工具(Webpack/V…...
[C语言]猜数字游戏
文章目录 一、游戏思路揭秘二、随机数生成大法1、初探随机数:rand函数的魔力2、随机数种子:时间的魔法3、抓住时间的精髓:time函数 三、完善程序四、游戏成果1、游戏效果2、源代码 一、游戏思路揭秘 猜数字游戏,这个听起来就让人…...
【Linux】g++安装教程
Linux上安装g教程 实现c语言在Linux上编译运行 1. 更新软件包列表 打开终端,先更新软件包列表以确保获取最新版本信息: sudo apt update2. 安装 build-essential 工具包 build-essential 包含 g、gcc、make 和其他编译所需的工具: sudo…...
MQTT - Android MQTT 编码实战(MQTT 客户端创建、MQTT 客户端事件、MQTT 客户端连接配置、MQTT 客户端主题)
Android MQTT 编码实战 1、Settting 在项目级 build.gradle 目录下导入 MQTT 客户端依赖 implementation org.eclipse.paho:org.eclipse.paho.mqttv5.client:1.2.5 implementation org.eclipse.paho:org.eclipse.paho.android.service:1.1.1AndroidManifest.xml,…...
Redis分布式锁使用以及对接支付宝,paypal,strip跨境支付
本章重点在于如何使用redis的分布式锁来锁定库存。减少超卖,同时也对接了支付宝,paypal,strip跨境支付 第一步先建立一个商品表 CREATE TABLE sys_product (id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 主键,code varchar(60) DEFAUL…...
沙箱逃逸(Python沙盒逃逸深度解析)
沙箱逃逸(Python沙盒逃逸深度解析) 一、沙盒逃逸的核心目标 执行系统命令 通过调用os.system、subprocess.Popen等函数执行Shell命令,例如读取文件或反弹Shell。 文件操作 读取敏感文件(如/etc/passwd)、写入后门文件…...
k8s-Pod生命周期
初始化容器 初始化容器是在pod的主容器启动之前要运行的容器,主要是做一些主容器的前置工作,它具有两大特征: 1. 初始化容器必须运行完成直至结束,若某初始化容器运行失败,那么kubernetes需要重启它直到成功完成 2. 初…...
基于Springboot + vue实现的中医院问诊系统
项目描述 本系统包含管理员、医生、用户三个角色。 管理员角色: 用户管理:管理系统中所有用户的信息,包括添加、删除和修改用户。 配置管理:管理系统配置参数,如上传图片的路径等。 权限管理:分配和管理…...
computed计算值为什么还可以依赖另外一个computed计算值?
在 Vue(或类似的响应式框架)中,computed 计算属性之所以可以依赖另一个 computed 属性,是因为: ✅ 本质上 computed 是响应式依赖的“派生值” 每个 computed 本质上就是一个 基于其他响应式数据计算出来的值。 当你在…...
近期实践总结
一、计算机二级考试到底教会了我们什么? 1、概况 根据本人复习、考试的经验,不难发现里面的试题或多或少有些死板(甚至可以说落后于时代),当今时代已经不是二十年前什么都需要手搓的时代了,引擎、集成类软…...
Arduion 第一天,变量的详细解析
Arduino变量详解与嵌入式开发扩展 一、变量基础篇 1.1 变量声明与初始化 <ARDUINO>int ledPin 13; // 声明并初始化float sensorValue; // 先声明后赋值unsigned long startTime; // 无符号长整型void setup() {sensorValue analogRead(A0) *…...
【每日八股】复习 MySQL Day3:锁
文章目录 昨日内容复习MySQL 使用 B 树作为索引的优势是什么?索引有哪几种?什么是最左匹配原则?索引区分度?联合索引如何排序?使用索引有哪些缺陷?什么时候需要建立索引,什么时候不需要…...
2025年KBS新算法 SCI1区TOP:长颖燕麦优化算法AOO,深度解析+性能实测
目录 1.摘要2.算法原理3.结果展示4.参考文献5.文章&代码获取 1.摘要 本文提出了一种新颖的元启发式算法——长颖燕麦优化算法(AOO),该算法灵感来自动画燕麦在环境中的自然行为。AOO模拟了长颖燕麦的三种独特行为:(i) 通过自然…...
1.4 点云数据获取方式——结构光相机
图1-4-1结构光相机 结构光相机作为获取三维点云数据的关键设备,其工作原理基于主动式测量技术。通过投射已知图案,如条纹、点阵、格雷码等,至物体表面,这些图案会因物体表面的高度变化而发生变形。与此同时,利用相机从特定...
2025.4.29总结
工作:最近手头活变得多起来了,毕竟要测两个版本,有时候觉得很奇怪,活少的时候,又想让别人多分点活,活多的时候,又会有些许不自然。这种反差往往伴随着项目的节奏,伴随着两个极端。所…...
初探RAG
源码 核心工作流程 读取文件的内容将内容保存在向量数据库检索向量数据库用户的问题用户问题 上下文【向量数据】 > LLM 读取文件内容【pdf为例】 from pdfminer.high_level import extract_pages from pdfminer.layout import LTTextContainerclass PDFFileLoader():d…...
AIGC(生成式AI)技术全景图:从文本到图像的革命
AIGC(生成式AI)技术全景图:从文本到图像的革命 前言 生成式人工智能(AIGC)正以惊人的速度重塑数字内容的生产方式。从GPT系列模型的文本生成,到Stable Diffusion的图像创作,再到Sora的视频合成…...
通信协议:数字世界的隐形语言——从基础认知到工程实践-优雅草卓伊凡
通信协议:数字世界的隐形语言——从基础认知到工程实践-优雅草卓伊凡 一、理解通信协议:数字世界的”隐形语法” 1.1 通信协议的不可见性与现实存在 通信协议如同空气中的无线电波,虽然看不见摸不着,却实实在在支撑着现代数字世…...
RPC复习
RPC复习 RPC (远程过程调用) 全面解析一、RPC 定义与核心作用1. 什么是RPC?2. 核心作用 二、主流RPC框架对比三、RPC适用场景四、RPC的缺陷五、RPC vs REST vs GraphQL六、Java实现案例:使用Dubbo框架案例描述1. 环境准备2. 定义服务接口3. 服务提供方实…...
Express 文件上传不迷路:req.files 一次性讲明白
前言 在开发后台接口的江湖中,文件上传堪称“隐藏副本”,难度不大但坑点极多。本来只想优雅接收一张图片,结果 undefined、报错、路径错乱轮番登场,逼得人想重拾卖烤红薯的梦想。别慌,本文将用轻松幽默的方式,深入拆解 req.files.file 的每个属性,从前端表单到后台处理…...
Leetcode 3530. Maximum Profit from Valid Topological Order in DAG
Leetcode 3530. Maximum Profit from Valid Topological Order in DAG 1. 解题思路2. 代码实现 题目链接:3530. Maximum Profit from Valid Topological Order in DAG 1. 解题思路 这一题的整体思路就是一个动态规划的思路,我们只需要在当前可以访问的…...
Mysql中索引的知识
Mysql中的索引的定义和种类 核心概念:索引是什么? 想象一下你有一本很厚的书,你想找到其中关于某个特定主题的内容。你有两种方法: 从头到尾翻阅整本书:这就像数据库中的全表扫描 (Full Table Scan)。如果书很长&…...
VSCode Verilog编辑仿真环境搭建
VSCode Verilog环境搭建 下载Iverilog安装Iverilog验证安装VS Code安装插件 下载Iverilog 官网下载Iverilog 安装Iverilog 一定要勾选这两项 建议勾选这两项 验证安装 运行Windows PowerShell输入命令:iverilog输入命令:Get-Command gtkwave …...