前端开发笔记与实践
一、Vue 开发规范与响应式机制
1. 组件命名规范
- 自定义组件使用大驼峰命名法(如
MyComponent
),符合 Vue 官方推荐,便于与原生 HTML 元素区分。
2. Proxy vs defineProperty
特性 | Proxy (Vue3) | Object.defineProperty (Vue2) |
---|---|---|
拦截范围 | 支持对象增删改查等所有基本操作 | 只能监听已有属性 |
数组支持 | 自动拦截数组变异方法 | 需手动重写数组方法 |
性能 | 更高效 | 层级嵌套需递归处理 |
Vue3 使用
Proxy
实现更全面的响应式拦截,而 Vue2 依赖defineProperty
实现有限拦截。
3. 响应式核心流程
- Observer:将数据转换为响应式对象(通过
defineProperty
或Proxy
) - Watcher:追踪依赖,记录哪些函数(如
render
)用到了哪些数据 - Dep:每个属性维护一个依赖列表,当属性变化时通知 Watcher 更新
- Scheduler:异步调度更新,避免重复渲染,提高性能
4. 调度器作用
- 合并多次变更,减少 render 触发次数
- 异步执行更新(基于
nextTick
和微任务队列) - 确保每个 Watcher 只执行一次更新
5. Vue3响应式性能对照
操作 | Vue2 (defineProperty) | Vue3 (Proxy) |
---|---|---|
初始化1000属性 | 15ms | 3ms |
新增100属性 | 需要Vue.set | 直接赋值 |
数组操作 | 特殊处理 | 原生支持 |
内存占用 | 每个属性1KB | 整个对象3KB |
二、CSS 与 SCSS 进阶
1. CSS 新单位
单位 | 计算依据 | 典型应用场景 |
---|---|---|
vmin | 视口宽高中较小值 | 移动端全面屏适配(适配小屏幕) |
vmax | 视口宽高中较大值 | 大屏展示元素尺寸控制(适配宽屏) |
dvh | 动态视口高度 | 解决移动浏览器工具栏遮挡问题 |
svh/lvh | 小/大视口高度 | 特定视口比例布局 |
/* 确保元素在任何设备上都可见 */
.modal {width: min(90vw, 800px);height: max(60vh, 400px);/* 移动端避开地址栏 */height: calc(100dvh - 60px);
}
2. SCSS 循环与变量
$num: 20;@for $i from 1 through $num {.btn:nth-child(#{$i}) {transform: scale(0.1 * $i);}
}
三、JavaScript 进阶技巧
1. 判断是否是数组
方法 | 是否可靠 | 说明 |
---|---|---|
Array.isArray() | ✅ 推荐 | ES6 标准方法 |
obj instanceof Array | ❌ | 受原型链影响 |
Object.prototype.toString.call(obj) | ❌ | 可被 Symbol.toStringTag 修改 |
2. 稀疏数组判断
function isSparseArray(arr) {if (!Array.isArray(arr)) return false;for (let i = 0; i < arr.length; i++) {if (!(i in arr)) return true;}return false;
}
3. 数组去空字符串
const arr = ['', '1'];
const filtered = arr.filter(Boolean); // ['1']
4. 字符串路径转类名
const path = 'view/home/index';
const className = path.split('/').join('-'); // view-home-index
5. 垃圾回收机制
- 垃圾判定:不可达内存
- 回收策略:
- 引用计数(易产生循环引用泄漏)
- 标记清除(主流浏览器采用)
- 闭包问题:词法环境未释放导致内存膨胀
- 手动释放:将引用设为
null
四、TypeScript 技巧
1. 函数参数类型约束
const obj = {age: 18,name: 'zhangsan'
};function fn(key: keyof typeof obj) {const v = obj[key];
}
2. 获取三方库函数参数/返回值类型
import { fn } from "some-lib";type FnParams = Parameters<typeof fn>[0]; // 获取第一个参数类型
type FnReturn = ReturnType<typeof fn>; // 获取返回值类型
3. 元组生成联合类型
const obj = {a: 1,b: 2,z: 36
};
type KeysType = keyof typeof obj; // 'a' | 'b' | ... | 'z'function getValue(key: KeysType) {console.log(obj[key]);
}
五、文件上传与下载
1. 文件上传交互方式
-
多选:
<input type="file" multiple>
-
文件夹选择:
<input type="file" webkitdirectory mozdirectory odirectory>
-
拖拽上传:
div.ondragover = e => e.preventDefault(); div.ondrop = e => {e.preventDefault();for (const item of e.dataTransfer.items) {const entry = item.webkitGetAsEntry();if (entry.isFile) {entry.file(file => console.log(file));} else {const reader = entry.createReader();reader.readEntries(entries => console.log(entries));}} };
-
拖拽上传增强版
class AdvancedDropzone {constructor(selector) {this.el = document.querySelector(selector);this.setupEvents();this.preview = this.createPreview();}setupEvents() {this.el.addEventListener('dragover', this.highlight.bind(this));this.el.addEventListener('dragleave', this.unhighlight.bind(this));this.el.addEventListener('drop', this.handleDrop.bind(this));}async handleDrop(e) {e.preventDefault();this.unhighlight();const entries = Array.from(e.dataTransfer.items).map(item => item.webkitGetAsEntry());const files = [];for (const entry of entries) {if (entry.isFile) {files.push(this.getFile(entry));} else {files.push(...await this.traverseDirectory(entry));}}this.previewFiles(files);}async traverseDirectory(dir) {const reader = dir.createReader();const entries = await new Promise(resolve => {reader.readEntries(resolve);});const files = [];for (const entry of entries) {if (entry.isFile) {files.push(await this.getFile(entry));} else {files.push(...await this.traverseDirectory(entry));}}return files;} }
-
大文件分片上传
class ChunkedUploader {constructor(file, options = {}) {this.file = file;this.chunkSize = options.chunkSize || 5 * 1024 * 1024;this.concurrent = options.concurrent || 3;this.chunks = Math.ceil(file.size / this.chunkSize);this.queue = [];}async upload() {const chunks = Array.from({ length: this.chunks }, (_, i) => i);const results = await pMap(chunks, this.uploadChunk.bind(this), {concurrency: this.concurrent});return this.finalize();}async uploadChunk(index) {const start = index * this.chunkSize;const end = Math.min(start + this.chunkSize, this.file.size);const chunk = this.file.slice(start, end);const form = new FormData();form.append('chunk', chunk);form.append('index', index);form.append('total', this.chunks);await axios.post('/upload', form, {onUploadProgress: this.createProgressHandler(index),__chunkIndex: index});} }
2. 文件上传网络请求
方式 | 支持进度 | 支持取消 |
---|---|---|
XHR / Axios | ✅ 上传/下载 | ✅ |
Fetch | ✅ 下载 | ✅(AbortController) |
3. 文件下载方式
-
<a>
标签下载(同源限制):<a href="http://xxx.pdf" download>Download</a>
-
Blob + URL.createObjectURL(跨域无 token 限制):
fetch(url).then(res => res.blob()).then(blob => {const url = URL.createObjectURL(blob);const a = document.createElement('a');a.href = url;a.download = 'file.pdf';a.click();URL.revokeObjectURL(url); });
六、性能优化技巧
1. 环境兼容性封装(一次性判断)
const addEvent = (() => {if (ele.addEventListener) {return (ele, eventName, handler) => ele.addEventListener(eventName, handler);} else if (ele.attachEvent) {return (ele, eventName, handler) => ele.attachEvent('on' + eventName, handler);} else {return (ele, eventName, handler) => ele['on' + eventName] = handler;}
})();
2. Token 无感刷新方案
- 请求失败且为 401 错误
- 检查是否为刷新接口本身 → 是则跳过
- 若已有刷新 Promise 存在 → 复用
- 发起刷新请求 → 替换新 token 重新发起原始请求
- 失败 → 清除 token 跳转登录页
let refreshPromise: Promise<any> | null = null;export async function refreshToken() {if (refreshPromise) return refreshPromise;refreshPromise = new Promise(async resolve => {try {const res = await axios.get('/refresh_token', {headers: { Authorization: `Bearer ${getRefreshToken()}` },__isRefreshToken: true});if (res.code === 0) resolve(true);else resolve(false);} catch (e) {resolve(false);} finally {refreshPromise = null;}});return refreshPromise;
}
七、扩展知识
1. 单点登录(SSO)与 JWT 关系
- 单点登录:用户只需登录一次即可访问多个系统
- JWT:是一种 Token 生成与验证机制,常用于身份认证
- 关系:JWT 可作为 SSO 的 Token 实现方式之一,但二者没有必然联系
相关文章:
前端开发笔记与实践
一、Vue 开发规范与响应式机制 1. 组件命名规范 自定义组件使用大驼峰命名法(如 MyComponent),符合 Vue 官方推荐,便于与原生 HTML 元素区分。 2. Proxy vs defineProperty 特性Proxy(Vue3)Object.defi…...
机器学习知识自然语言处理入门
一、引言:当文字遇上数学 —— 自然语言的数字化革命 在自然语言处理(NLP)的世界里,计算机要理解人类语言,首先需要将文字转化为数学向量。早期的 One-Hot 编码如同给每个词语分配一个唯一的 “房间号”,例…...
泰迪杯特等奖案例深度解析:基于多级二值化与CNN回归的车牌识别系统设计
(第八届泰迪杯数据挖掘挑战赛特等奖案例全流程拆解) 一、案例背景与核心挑战 1.1 行业痛点与场景需求 在智慧交通与无感支付场景中,车牌识别是核心环节。传统车牌识别系统在复杂光照、污损车牌、多角度倾斜等场景下存在显著缺陷。根据某智慧油站2024年运营数据显示,高峰期…...
ai agent(智能体)开发 python高级应用5:crawl4ai 如何建立一个全面的知识库 第一步找分类
让我们充分利用爬虫功能建立自己丰富的知识库, 第一步找分类 以下是一个层次分明、覆盖全面的知识库分类体系,分为9大主类、43个子类,并融入交叉学科和新兴领域设计: 一、经济与商业 宏观经济(全球经济/国家政策&a…...
Solon Ai Flow 编排开发框架发布预告(效果预览)
Solon Ai 在推出 Solon Ai Mcp 后,又将推出 Solon Ai Flow。 1、Solon Ai Flow 是个啥? Solon Ai Flow 是一个智能体编排开发框架。它是框架!不是工具,不是产品(这与市面上流行的工具和产品,有较大差别&a…...
【言语】刷题5(填空)
front:刷题5 第一个词排除人迹罕至 人迹罕至:很少有人去的地方。指偏僻荒涼的地方。(荒郊野岭既视感的一个词) 第二个空锁定B,太贴合语义了 第三个空排除一文不值,百无一用,现在这题已经可以过了…...
技术解码 | 腾讯云SRT弱网优化
随着互联网基础设施和硬件设备的不断发展。广大直播观众对于直播观看的清晰度,延时等方面的体验要求越来越高,直播也随之进入了低延迟高码率的时代,直播传输技术也面临着越来越高的要求和挑战。 腾讯视频云为此在全链路上针对流媒体传输不断深…...
“分布形态“
一、分布形态的基础分类 1、正态分布(对称分布) (1)特征:钟型曲线,均值=中位数=众数;约68%数据在μσ范围内,95%在μ2σ内。 (2)应用:身高、体重、测量误差等自然现象。 (3)重要性:多数统计方法(如T检验、方差分析)假设数据正态性。 2、偏态分布 (1)左偏(负…...
Android minSdk从21升级24后SO库异常
问题 minSdk从21调整到24后: java.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity- Bg31QvFwF4qsCwv2XCqT-w/split_config.arm64_v8a.apkjava.nio.file.NoSuchFileException: /data/app/~~Z9s2NfuDdclOUwUBLKnk0A/com.rs.unity-…...
C#进阶(2)stack(栈)
前言 我们前面介绍了ArrayList,今天就介绍另一种数据结构——栈。 这是栈的基本形式,博主简单画了一下,你看个意思就行,很明显,这种数据有一种特征:先进后出。因为先进来的数据会在下面,下面是密闭的,所以只能取后面进来的。 C#为我们封好了这种数据结构,我们不用担…...
Linux du 命令终极指南:从基础到精通
文章目录 Linux du 命令终极指南:从基础到精通du 命令简介常用参数详解常见用法示例查看当前目录总大小查看当前目录及其子目录占用空间只显示当前目录总占用空间查看目录下每个文件和子目录的大小查看某目录深度为 1 的大小分布查看某目录并排除日志文件查看多个目…...
【Linux网络】数据链路层
数据链路层 用于两个设备(同一种数据链路节点)之间进行传递。 认识以太网 “以太网” 不是一种具体的网络,而是一种技术标准;既包含了数据链路层的内容,也包含了一些物理层的内容。例如:规定了网络拓扑结…...
水库雨水情测报与安全监测系统解决方案
一、方案概述 本水库雨水情测报与安全监测解决方案的核心目标在于利用尖端的技术手段,确保对水库雨水情势以及大坝安全状况的持续监控和及时预警,从而为水库的稳定运行提供坚实的支持和保障。该方案严格遵循“统筹协调、因库制宜、实用有效、信息共享”的…...
Shotcut:免费开源的视频编辑利器
Shotcut是一款功能强大且完全免费的开源视频编辑软件,专为需要高效、灵活视频编辑的用户设计。它支持多种常见视频格式,如MP4、AVI、MOV等,并提供了丰富的视频编辑功能,满足用户在不同场景下的需求。无论是初学者还是专业人士&…...
学习海康VisionMaster之直方图工具
一:进一步学习了 今天学习下VisionMaster中的直方图工具:就是统计在ROI范围内进行灰度级分布的统计 二:开始学习 1:什么是直方图工具? 直方图工具针对输入灰度图像的指定ROI区域,输出该区域的图像灰度直方…...
AI 笔记 -基于retinaface的FPN上采样替换为CARAFE
上采样替换为CARAFE 引言内容感知特征重组(CARAFE)公式化核预测模块 引言 简介:CARAFE(Content-Aware ReAssembly of FEatures),是用于增强卷积神经网络特征图的上采样方法,论文被 ICCV 2019 接…...
Visual Studio 2022 中添加“高级保存选项”及解决编码问题
文章目录 一、背景二、方法方法一:通过菜单栏手动添加(推荐)方法二:通过拖拽快速添加(替代方案) 三、验证与使用四、补充说明五、所能解决的问题 一、背景 VS 在开发cmake项目的过程中,可能会遇…...
SQLMesh 增量模型从入门到精通:5步实现高效数据处理
本文深入解析 SQLMesh 中的增量时间范围模型,介绍其核心原理、配置方法及高级特性。通过实际案例说明如何利用该模型提升数据加载效率,降低计算资源消耗,并提供配置示例与最佳实践建议,帮助读者在实际项目中有效应用这一强大功能。…...
嵌入式开发书籍推荐
嵌入式开发是将计算机技术、微电子技术与各行业应用相结合的综合技术,学习过程中需要多方面知识储备。以下精选书籍,从基础到进阶,助你系统掌握嵌入式开发知识。 基础理论类 《计算机组成原理》(唐朔飞版)࿱…...
实变函数 第二章 点集
2 点集 2.1 欧式空间 2.1.1 度量空间、欧式空间 Definition \textbf{Definition} Definition 度量空间 (距离空间) 若 ∀ x , y ∈ X : ∃ d : ( x , y ) → R \forall x,y\in X:\exists d:(x,y)\to\mathbb{R} ∀x,y∈X:∃d:(x,y)→R,满足: d ( x , y…...
国芯思辰| 轮速传感器AH741对标TLE7471应用于汽车车轮速度感应
在汽车应用中,轮速传感器可用于车轮速度感应,为 ABS、ESC 等安全系统提供精确的轮速信息,帮助这些系统更好地发挥作用,在紧急制动或车辆出现不稳定状态时,及时调整车轮的制动力或动力分配。 国芯思辰两线制差分式轮速…...
MySQL中innodb的ACID
一、什么ACID A:原子性,事务是一个不可分割的工作单位,事务中的操作要么全部成功,要么全部失败回滚;C:一致性,事务必须保证数据库从一个一致性的状态变换成另一个一致性的状态,如A给…...
基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读
Fast Text-to-Audio Generation with Adversarial Post-Training 论文解析 一、引言与背景 文本到音频系统的局限性:当前文本到音频生成系统性能虽佳,但推理速度慢(需数秒至数分钟),限制了其在创意领域的应用。 研究…...
java 使用zxing生成条形码(可自定义文字位置、边框样式)
最新工作中遇到生成条形码的需求,经过一番摸索之后找到了zxing这个工具类,实现效果如下: 首先引入依赖: <!-- 条形码生成器 --><dependency><groupId>com.google.zxing</groupId><artifactId&g…...
4.3/Q1,Charls最新文章解读
文章题目:Longitudinal trajectories of disability index and associated factors in Chinese older adults DOI:10.1016/j.jnha.2025.100530 中文标题:中国老年人残疾指数纵向轨迹及相关因素 发表杂志:J Nutr Health Aging 影响…...
CSS- 2.1 实战之图文混排、表格、表单、学校官网一级导航栏
本系列可作为前端学习系列的笔记,代码的运行环境是在HBuilder中,小编会将代码复制下来,大家复制下来就可以练习了,方便大家学习。 HTML系列文章 已经收录在前端专栏,有需要的宝宝们可以点击前端专栏查看! 系…...
Android studio 实现弹出表单编辑界面
方法 1:使用 AlertDialog(简单表单) 适用于简单的表单场景。 1. 创建表单布局(XML) 在 res/layout 中新建 dialog_form.xml: <?xml version"1.0" encoding"utf-8"?> <L…...
涂色不踩雷:如何优雅解决 LeetCode 栅栏涂色问题
文章目录 摘要描述例子: 题解答案(Swift)题解代码分析动态规划核心思路初始条件 示例测试及结果示例 1:示例 2:示例 3: 时间复杂度空间复杂度总结实际场景联系 摘要 在用户体验和界面设计中,颜…...
WL-G4048 Multi-Port PCIe 4.0 Switch
系列文章目录 文章目录 系列文章目录《WL-G4048 Multi-Port PCIe 4.0 Switch数据手册》总结一、芯片介绍二、芯片规格介绍(一)功能指标(二)管理调试和监控(三)参考时钟(四)系统复位 …...
基于Huber函数和最大相关熵的抗差滤波算法
最大熵滤波(Maximum Entropy Filtering)常用于信号处理中的谱估计和噪声抑制,尤其适用于短数据序列的高分辨率谱分析。 一、最大熵滤波算法原理 核心思想:在满足已知自相关函数约束的条件下,使信号的熵最大化。 数学形…...
力扣-39.组合总和
题目描述 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数字可以 无限制重复被…...
医学图像分析中的大规模基准测试与增强迁移学习|文献速递-深度学习医疗AI最新文献
Title 题目 Large-scale benchmarking and boosting transfer learning for medical imageanalysis 医学图像分析中的大规模基准测试与增强迁移学习 01 文献速递介绍 将在大规模摄影数据集(如ImageNet)上预训练的模型微调至医学图像领域(…...
深入浅出横向联邦学习、纵向联邦学习、联邦迁移学习
深入浅出解析横向联邦学习(Horizontal Federated Learning)、纵向联邦学习(Vertical Federated Learning)和联邦迁移学习(Federated Transfer Learning) 有多个机构(比如几家不同的银行&#x…...
vue复杂数据类型多层嵌套的监听
vue复杂数据类型多层嵌套的监听 本来看前辈的做法是watch的嵌套,遇到这种复杂的数据结构还是不多,分享一下前辈的做法 let stopChildWatchList [] // 用于存放每个子监听器watch(() > data,(val) > {// 清除旧监听stopChildWatchList.forEach(…...
windows系统中下载好node无法使用npm
原因是 Windows PowerShell禁用导致的npm无法正常使用 解决方法管理员打开Windows PowerShell 输入Set-ExecutionPolicy -Scope CurrentUser RemoteSigned 按Y 确认就解决了...
使用 Docker 部署 React + Nginx 应用教程
目录 1. 创建react项目结构2. 创建 .dockerignore3. 创建 Dockerfile4. 创建 nginx.conf5. 构建和运行6. 常用命令 1. 创建react项目结构 2. 创建 .dockerignore # 依赖目录 node_modules npm-debug.log# 构建输出 dist build# 开发环境文件 .git .gitignore .env .env.local …...
顶层设计-IM系统架构
一、系统总体架构概览 即时通讯(IM)系统的核心目标,是让用户可以随时随地稳定地发送和接收消息。为了支撑成千上万用户同时在线交流,我们需要将整个系统划分成多个专职模块,每个模块只负责一件事情,彼此协同…...
Maven Deploy的依赖与引用方的依赖不同
提供的依赖:dependency:tree - com.alibaba.csp:sentinel-springboot-starter:jar:3.0.1-SNAPSHOT:compile [INFO] | - com.alibaba.csp:sentinel-datasource-nacos:jar:3.0.1:compile [INFO] | - com.alibaba.csp:sentinel-datasource-extension:jar:3.0.1:compil…...
如何让 Google 收录 Github Pages 个人博客
版权归作者所有,如有转发,请注明文章出处:https://cyrus-studio.github.io/blog/ 如何确认自己的网站有没有被 google 收录 假设网址是:https://cyrus-studio.github.io/blog 搜索:site:https://cyrus-studio.github…...
物体雅克比、空间雅克比、解析雅克比、几何雅克比
在机器人学中,雅可比矩阵是连接广义坐标速度与末端执行器速度的关键工具。根据应用场景和参考系的不同,雅可比矩阵可分为物体雅可比(Body Jacobian)、空间雅可比(Space Jacobian)、解析雅可比(A…...
PCL PolygonMesh 与 TextureMesh 源码阅读与简单测试
Title: PCL PolygonMesh 与 TextureMesh 源码阅读与简单测试 文章目录 I . PolygonMesh1. PolygonMesh 结构体2. Vertices 结构体与点云索引3. 测试 PolygonMesh II. TextureMesh1. TextureMesh 结构体2. TexMaterial 结构体3. 纹理坐标与纹理坐标索引4. 测试 TextureMesh 以下…...
CSS面试题汇总
在前端开发领域,CSS 是一项不可或缺的技术。无论是页面布局、样式设计还是动画效果,CSS 都扮演着重要的角色。因此,在前端面试中,CSS 相关的知识点往往是面试官重点考察的内容。为了帮助大家更好地准备面试,本文汇总了…...
光谱相机的空间分辨率和时间分辨率
一、空间分辨率 定义与参数 概念:指单个像素对应实际地物的最小尺寸,常用地面采样距离(GSD,单位:米)或像素大小(单位:微米)表示。 分类: 高空…...
【研0学习计划表】
前言 以下学习计划并不固定: 1.若当前阶段的学习任务学习结束,对下一阶段的学习计划进行适当调整,提前进入下一阶段学习任务。 若当前阶段学习任务未完成,则根据每一阶段的学习情况,进行学习总结,然后对下…...
还没用过智能文档编辑器吗?带有AI插件的ONLYOFFICE介绍
在当今激烈的数字化竞争中,文档处理效率直接影响企业的决策与响应速度。然而,许多办公平台仅支持基础流程,查阅、批注和修改仍需借助外部工具,增加了操作复杂性和沟通成本。本文将探讨如何在自己的网站、平台、系统或者服务中集成…...
机器学习前言2
1.机器学习 2.机器学习模型 3.模型评价方法 4.如何选择合适的模型 介绍 机器学习(Machine Learning, ML)是人工智能(AI)的核心分支,致力于通过数据和算法让计算机系统自动“学习”并改进性能,而无需显式编…...
在多个SpringBoot程序中./相对路径下隐患、文件覆盖问题
概述 两个 Spring Boot 应用生成的配置文件被覆盖,是因为 相对路径的解析依赖于当前工作目录(Working Directory),而你可能在运行应用时未正确设置各自的工作目录。以下是具体原因和解决方案: 原因分析 相对路径…...
弦理论的额外维度指的是什么,宇宙中有何依据
弦理论中的额外维度是解释微观世界与宏观宇宙矛盾的关键假设之一。它们并非科幻中的平行宇宙,而是通过严谨的数学框架提出,并可能留下可观测的宇宙学痕迹。以下是具体解析: 一、弦理论为何需要额外维度? 数学自洽性要求 弦理论中…...
FC7300 GPT MCAL 配置引导
一、配置约束 FCPIT:仅FC7240型号芯片支持。如果GPT模块与PWM/ICU/OCU模块使用相同的FTU实例,配置工具将报告一个错误。如果GPT通道使用FTU,时钟源来自PCC,则GptFtuChannelClkSrc必须选择GPT_FTU_BUS_CLK。二、MCU 组件 - 配置WDG采用的定时器时钟 Examle:WDG选用AONTIMER…...
LangFlow技术深度解析:可视化编排LangChain应用的新范式 -(2)流编辑器系统
Flow Editor System | langflow-ai/langflow | DeepWiki 流编辑器系统 相关源文件 流编辑器系统是 Langflow 的核心交互式组件,允许用户直观地创建、编辑和管理 LLM 驱动的应用程序。它提供了一个直观的画布,用户可以在其中添加节点、将其与边缘连接并…...