TA的文章

TypeORM 如何设置索引@Index
在数据库系统中,索引是帮助快速检索数据的一种数据结构。对于使用TypeORM来管理数据库的开发者来说,了解如何在模型中设置索引非常重要。本教程将记录如何在TypeORM中设置索引。什么是索引?索引(Index)是数据库表中一种特殊的数据结构,它能够帮助我们更快地检索表中的数据。理解索引的概念可以想象一本书的目录,它能让你快速找到你想阅读的章节,而不是一页页地翻找。索引设置方式在TypeORM中

一篇文章掌握 NestJS 所有的生命周期以及执行时机
NestJS是一个用于构建高效、可扩展的Node.js服务器端应用程序的框架,它使用TypeScript作为开发语言,也支持原生的JavaScript。在NestJS中,生命周期事件是一个重要的概念。在我们构建和管理应用程序时,有时需要在特定的阶段执行一些操作,例如在创建实例,添加或删除模块,突然终止程序时,对这些事件加以利用,可以使我们的应用程序更强大、灵活。在本文中,我将介绍NestJS的生命

一篇文章学会使用 NestJS 的 Module 实现高效的代码模块管理
在构建大型Web应用时,代码的组织和管理往往十分复杂。有没有一种方式可以使应用的每一个部分可以过分承担工作并保持独立,同时又能一起协作实现应用的完整功能呢?本文将为您详细介绍NestJS模块的概念以及创建过程。NestJS模块类似于工厂中的各个部门,每个部门有一套自己的工作模式,但最终共同完成整个生产流程。通过这篇文章,您不仅将理解NestJS模块是什么,更能掌握如何创建自己的自定义模块。且看这次

CentOS定时运行Cypress自动化测试用例并通过邮件通知结果
自动化测试的核心宗旨就是尽可能减少人工参与的情况下保证系统的稳定运行。当完成核心业务的自动化用例后,我们可以通过定时运行或者有新代码提交等等需要验证核心业务是否正常,并且通过邮件或者其他的手段通知研发同学自动化用例运行结果。本文详细记录Cypress自动化用例如何在centos服务器中定时运行,并且通过邮件通知自动化测试用例的运行结果。编写运行shell脚本为了配合centos的定时器功能

Golang 中如何生成固定长度的随机字符串
生成随机字符串在许多编程情景中都非常有用,比如创建密码、唯一标识符或者用于测试的随机数据。Golang生成一个固定长度的随机字符串是一个相对简单的任务,但需要注意一些关于随机性和安全性的细节。本文将详细介绍如何在Golang中生成一个固定长度的随机字符串。实现步骤一、引入依赖包首先,我们需要引入Go的两个包:math/rand用于生成随机数,time用于提供一个随机种子。import("mat

Golang 如何执行定时器 Timer
Golang定时器允许我们在将来的某个时间点执行一次或定期执行代码,这在编写需要调度任务或者实现某些定时操作的程序时非常有用。Golang的标准库time提供了强大的定时器和计时器功能。本文将详细介绍如何在Golang中使用定时器。实现方式一、单次定时器如果只想在将来的某个时间点执行一次任务,可以使用time.AfterFunc函数或者time.NewTimer方法。使用time.AfterFun

React 内置 Hook 之 useEffect
Hook是一种特殊的函数,使得你能够在不更改组件结构的条件下,重用组件之间的状态相关逻辑,进步提升我们代码的复用性和可维护性。其中,useEffect作为核心的一部分,帮助我们解决在类组件中副作用相关逻辑复杂难懂的问题。理解了Hook的概念,让我们现在深入探讨它其中一个重要的应用——useEffect。useEffect是什么useEffect是React的核心Hook之一。它让你可以在函数组件中

零基础入门 Nestjs 开发教程
NestJS是一个用于开发高效、可扩展的Node.js服务器端应用程序的框架。其优雅的TypeScript支持和深度集成的系统模块,使得开发复杂的后端服务变得前所未有的简单。在这篇文章中,我们将介绍NestJS的基础知识,帮助你快速入门。准备工作以下准备工作是nestjs运行的基础环境,如果你已经学习或了解了nodejs相关的知识以及开发设备已经成功安装了Node环境和开发IDE,请忽略这部分内容

React Context:组件跨层级共享状态参数
通常情况下,我们通过props将参数从父组件传递给子组件,达到组件间状态参数共享的目的。但是面对嵌套了多层组件的情况,继续使用props一层一层的传递参数是非常冗余和繁琐的。对于这种包含多层组件的传参,React提供了Context能力来支持父组件向它包含的无论嵌套层级有多深的子组件传递状态参数,让状态共享变的简单。使用步骤一、创建Context通过createContext创建Context

Mongoose 如何查询某个字段为空、null、不存在的数据
在使用MongoDB数据库进行数据管理时,经常会遇到需要查询某些字段为空或者不存在的文档的情况。Mongoose为MongoDB提供了直观的建模和查询语法。本文将介绍如何在Mongoose中查询具有空字段的文档,确保能够轻松处理各种数据查询需求。MongoDB中的「空」有哪些首先,我们需要理解在MongoDB中,一个字段被认为是空的情况可能有几种不同的状态:字段值为null。字段不存在。字段值为空

Git 如何删除本地分支与删除远程分支
Git允许我们创建、合并甚至删除分支。本文将学习如何在Git中删除本地分支和远程分支。删除本地分支在删除一个本地分支之前,确保你没有切换到该分支上。如果你正处在要删除的分支上,请先切换到一个不同的分支:gitcheckoutmaster现在,你可以使用以下命令删除分支:gitbranch-d<branch_name>如果该分支有尚未合并的更改,Git会给你一个警告。如果你确定要删除这个

【手写组件库之日历组件教程第一篇】基于React实现日历组件详细教程
日历组件是常见的日期时间相关的组件,围绕日历组件设计师做出过各种尝试,展示的形式也是五花八门。但是对于前端开发者来讲,主要我们能够掌握核心思路,不管多么奇葩的设计我们都能够把它做出来。本文将详细分析如何渲染一个简单的日历组件。在线演示DEMOhttps://calendar.levenx.com/#/simple-calendar实现步骤计算每个月中具体包含的日期因为日历需要把当前月的每一天都展

一篇文章学会如何使用 NestJS 的五种 Provider 提供者
在构建复杂的后端应用中,如何有效地管理和彼此协作的各个部分,以及如何共享和复用功能已成为开发者们重要关注的问题。覆盖这些需求的一种技术就是NestJS中的Providers。这次,让我们一起深入探讨这个关键概念,解密Providers的奥秘,了解它们是如何提供和分配服务的。在这篇文章中,我们将学习五种主要的Provider类型:值提供者、类提供者、工厂提供者、异步工厂提供者和别名提供者,以及如何在

Flutter 设置 Lottie 动画的详细教程
Lottie是一个流行的库,可以让你在移动应用中轻松添加高质量的动画。它支持Android、iOS、Web以及其他多个平台,因此非常适合跨平台框架Flutter。在这篇教程中,将简要介绍如何在Flutter应用中使用Lottie动画。什么是Lottie?Lottie是Airbnb设计的一个库,可以帮助开发者轻松添加动画到任何应用。Lottie动画是基于JSON文件的,这些JSON文件通过Adob

如何在 NestJS 中安全高效的管理 Config 配置
应用程序通常需要在多种环境中运行,比如本地开发环境、测试环境和生产环境。在不同的环境中,我们通常需要采用不同的配置设置。举个例子,本地环境可能需要一个特定的数据库凭据,而生产环境则使用另一组完全不同的数据库凭据。由于这些配置变量频繁地改变,因此最佳实践是将它们存在环境变量中。在Node.js中,外部定义的环境变量可以通过process.env全局变量来访问。一种可能的做法是在每个环境中设置不同的环

如何在 NestJS 中集成winston 高级日志系统,打造清晰的日志管理策略
在Web应用程序的开发过程中,日志管理是不可或缺的一部分。日志可以帮助我们了解应用程序的运行状态,监控系统行为,以及在出现问题时快速定位和解决问题。对于使用NestJS框架的项目来说,集成一个高效、可扩展的日志系统尤为重要。在本教程中,我们将探讨如何在NestJS项目中集成日志系统,并管理系统日志。NestJS日志原理NestJS框架内部已经集成了简单的日志功能,你可以通过框架提供的Logger服

CSS 选择器以及选择器的优先级
CSS选择器是CSS用于选择HTML元素并应用具体样式属性的语法。CSS选择器有许多种类型,本文会详细列举所有的选择器并举例说明具体用法以及CSS选择器权重计算和CSS生效属性分析。CSS选择器1.标签选择器2.类选择器3.ID选择器4.属性选择器5.伪类选择器6.子选择器7.后代选择器8.相邻兄弟选择器9通配符选择器。css选择器优先级权重计算...

Git 如何检出 checkout 远程分支代码
当我们在使用Git这个强大的版本控制系统时,会经常需要与远程仓库进行交互,比如克隆、推送、拉取、合并等操作。今天我们聚焦于一个非常实用的操作:如何checkout远程分支。可能你是想要检出一个同事新开发的功能,或者是为了测试最新的部署代码,不管怎样,掌握这个技能对每一个使用Git的开发者来说都是必备的。什么是远程分支在Git中,远程分支是对远程仓库分支的引用。它们是你不能直接修改的只读分支。当你想

分治思想在排序算法中的应用 - 快速排序&归并排序
前言排序算法在编程中是最简单最基础的算法,同时快速排序和归并排序都是通过递归调用的方式进行排序的,对于递归而言,比较不好理解。记录一下快速排序和归并排序的Javascript代码实现以及两种算法的相同点与差异性。快速排序functionquickSort(arr){if(arr.length=1){returnarr;}constmid=Math.floor(arr.length/2);const

XSS防御:内容安全策略 CSP 使用实战与配置
公司部门安全合规改造计划,要求所有的Web站点统一添加CSP规则。对于CSP机制我只是之前在应付面试的时候背过相关的概念,并没有真正在项目中实践过。所以希望借助本次改造任务好好理解并实践CSP机制。CSP的全称是ContentSecurityPolicy,翻译成中文就是内容安全策略。CSP 通过告诉浏览器一系列规则,严格规定页面中哪些资源允许有哪些来源,不在指定范围内的通通拒绝。
TA的教程专栏

TailwindCSS 使用指南
Tailwind CSS 是一个流行的 CSS 工具库,它提供了一系列预定义的 CSS 类,可以帮助您轻松地创建漂亮的用户界面。本教程将帮助您深入了解 Tailwind CSS 的高级功能和技术,以帮助您更好地利用这个强大的工具库。 在本教程中,您将学习到: 如何使用 Tailwind CSS 的主题和变量来自定义外观和样式; 如何在 Tailwind CSS 中配置和使用插件来扩展其功能; 如何在 Tailwind CSS 中使用 JS 钩子和样式函数来创建动态样式; 如何在 Tailwind CSS 中创建响应式布局和样式; 如何在 Tailwind CSS 中使用 PurgeCSS 来优化和精简 CSS。 本教程适合那些已经有一定 Tailwind CSS 开发经验,并想要深入了解其高级功能和技术的开发人员。无论您是初学者还是有一定经验的 Tailwind CSS 开发人员,本教程都将为您提供宝贵的学习资源和实践经验。 让我们开始您的 Tailwind CSS 进阶之旅吧!

Typeorm 使用指南
TypeORM 是一个流行的 TypeScript ORM(对象关系映射)库,它可以帮助您轻松地将 TypeScript 类映射到关系型数据库表。本教程将帮助您深入了解 TypeORM 的高级功能和技术,以帮助您更好地利用这个强大的库。 在本教程中,您将学习到: 如何使用 TypeORM 中的高级查询和过滤功能来查询和操作数据库; 如何使用 TypeORM 中的实体继承和关系映射来创建复杂的数据模型; 如何使用 TypeORM 中的迁移和数据填充来管理数据库模式和数据; 如何在 TypeORM 中使用存储过程和触发器来扩展数据库功能; 如何在 TypeORM 中使用多数据库和分布式事务来管理复杂的应用程序。 本教程适合那些已经有一定 TypeORM 开发经验,并想要深入了解其高级功能和技术的开发人员。无论您是初学者还是有一定经验的 TypeORM 开发人员,本教程都将为您提供宝贵的学习资源和实践经验。 让我们开始您的 TypeORM 进阶之旅吧!

如何打造属于自己的React组件库
随着组件化开发成为前端开发的主流,拥有一套定制化的React组件库变得极其重要。本系列教程将指导你如何设计、开发和维护一个React组件库,不仅满足项目需求,而且易于共享和复用。我们将从React组件的基础知识开始,逐步讲解如何构建可复用组件、如何管理组件状态和生命周期、以及如何通过Prop Types和TypeScript进行类型检查。此外,你还将学习到如何利用Storybook来展示组件、使用Jest和Enzyme进行单元测试,以及如何将你的组件库发布到npm。 通过本系列教程的学习,你将获得创建自己React组件库的全部技能,为你的开发工作带来前所未有的效率和乐趣。

Mongoose 使用指南
在本教程中,我们将逐步探索Mongoose——一个在Node.js环境下与MongoDB数据库协同工作的强大库。从基本概念的铺垫到实用技巧的深度剖析,本系列覆盖了Schema设计、数据类型定义、模型创建、查询优化、插件扩展等核心主题。你将学习如何利用Mongoose的Schema来定义数据结构,实现数据验证和类型转换,以及如何通过模型进行数据的增删改查操作。 此外,教程将深入Mongoose的高级特性,包括但不限于索引管理、聚合框架、事务处理和数据迁移。我们将通过丰富的示例和练习,教你如何运用Mongoose来处理复杂查询、关联数据以及性能调优。 随后,本系列教程将深入讨论更高级的特性,如中间件(pre和post hooks)、数据校验、虚拟属性和实例方法,以及如何使用聚合管道进行复杂查询。此外,我们将详细介绍如何处理关系型数据,在Mongoose中实现文档的嵌入和引用,以及如何优雅地处理这些关系。 为了将理论与实践相结合,每一部分内容都包含了逐步的代码示例和实战小项目,帮助你更好地理解和运用Mongoose的功能。我们还会讨论性能调优、错误处理和最佳实践,以确保你能够构建既健壮又高效的Node.js应用。

CSS 入门指南
CSS 是一种用于描述文档样式和布局的样式表语言,它是 Web 开发中不可或缺的一部分。本教程将帮助您从零开始学习 CSS,了解其基本概念和语法,并逐步深入学习其高级特性和实践技巧。 在本教程中,您将学习到: CSS 基础知识,如选择器、盒模型、布局等; CSS 颜色、字体、背景和边框等样式属性的使用; CSS 媒体查询和响应式设计的实现; CSS 动画和过渡的实现技巧; CSS 预处理器,如 Sass、Less 的使用; CSS 框架,如 Bootstrap、Tailwind CSS 的使用。 本教程适合那些想要从零开始学习 CSS 的初学者。无论您是 Web 开发新手还是有一定经验的开发人员,本教程都将为您提供宝贵的学习资源和实践经验。 让我们开始您的 CSS 入门之旅吧!

React 入门宝典
React 是一个流行的 JavaScript 库,用于构建大规模、高性能的 Web 应用程序。本教程将帮助您从 React 的基础知识入门开始,逐步深入掌握 React 的高级概念和技术,以成为一名优秀的 React 开发人员。 在本教程中,您将学习到: React 的基础概念和核心原则,如组件、Props、State、生命周期等; 如何使用 JSX 语法编写 React 组件和模板; 如何使用 React 的事件处理、表单处理、样式管理等功能; 如何使用 React Router 实现单页应用程序; 如何使用 Redux 进行状态管理和数据流控制; 如何使用 React 的高级技术,如 Hooks、Context、Portal 等。 本教程适合那些已经有一定 JavaScript 编程经验,并希望进一步学习 React 技术的开发人员。无论您是初学者还是有一定经验的 React 开发人员,本教程都将为您提供宝贵的学习资源和实践经验。 让我们开始您的 React 之旅吧!

Web项目国际化通关手册
React 国际化是指将应用程序适配到不同的语言和地区的过程。在全球化时代,为您的应用程序提供多语言支持将为您的用户提供更好的用户体验,并帮助您扩大全球市场。本教程将帮助您学习如何在 React 应用程序中实现国际化。 在本教程中,您将学习到: React 国际化的基本概念和原则; 如何使用 React Intl 库来实现国际化; 如何在 React 中处理多语言文本、日期、时间和货币等; 如何在 React 中实现动态文本替换; 如何在 React 中切换不同的语言版本; 如何测试和调试国际化应用程序。 本教程适合那些已经有一定 React 开发经验,并想要扩展其应用程序的全球化能力的开发人员。通过本教程,您将学习如何使用 React Intl 库和其他现有工具来实现国际化,从而为您的应用程序提供更广泛的用户群和更好的用户体验。 让我们开始您的 React 国际化之旅吧!

Nodejs 学习指南
这是一套全面的Node.js学习指南,覆盖了从基础知识到高级应用的全部必备技能。本教程系列将带领你进入Node.js的世界,一个强大而灵活的JavaScript运行时环境,它让JavaScript不仅仅能在浏览器中运行。你将了解到如何设置Node.js环境、利用npm管理包,以及如何构建第一个应用程序。随着课程的深入,我们会探讨异步编程模型、中间件、RESTful API设计、数据库集成、安全性、测试以及性能优化等进阶主题。 无论你是初学者还是有志于成为全栈开发者,本教程都将为你提供一个扎实的Node.js学习基础和实践路径。

NestJS 最佳实践手册
在这个全面的NestJS最佳实践手册中,我们将一起探索如何使用NestJS这个强大的Node.js框架来构建可维护、可扩展的企业级应用。从NestJS的基本概念和架构出发,到深入了解其依赖注入、模块化和微服务等核心功能,本手册将为你提供一系列的专业指导和实用技巧。 我们将讨论如何有效地利用TypeScript的强类型能力,如何整合ORM以实现数据库操作,以及如何应用中间件、守卫、过滤器和拦截器来增强应用的安全性和性能。 通过实际案例和模式分析,这本手册不仅会教你如何编写代码,更重要的是教你如何思考NestJS应用的设计和结构,让你成为在现代后端开发领域中的专家。

Nextjs 全栈开发手册
在这个系列教程中,您将踏上一段探索 Next.js 的精彩旅程。Next.js 是一款基于 Node.js 和 React 的现代化框架,专为构建快速、静态生成和服务器端渲染的Web应用而设计。无论您是前端新手还是经验丰富的开发者,本教程都将以步骤分解的方式带领您从基础概念到高级功能,全面了解 Next.js 的核心特性。 我们将从 Next.js 的安装和基本配置开始,逐步深入到路由、状态管理、构建优化以及部署策略。通过实际案例,您将学会如何利用 Next.js 提升开发效率,提高应用性能,并构建出具有优秀SEO表现和用户体验的Web应用。 随着本系列教程的深入,您将掌握 Next.js 最佳实践,与此同时,我们还将涵盖如何整合RESTful API和GraphQL、使用静态站点生成(SSG)与服务器端渲染(SSR)的先进技术,以及如何借助 Vercel 等平台,实现无缝的生产部署。 让我们一起开启这次学习之旅,探索 Next.js 带来的无限可能,为您的前端技能树添上一笔重要的一笔。
TA的问题
TA的面试题
- Jest 如何测试异常处理并正确使用 toThrow 和 rejects?异常测试不是为了证明代码“会报错”,而是确认它在错误输入、依赖失败和边界条件下报出正确的错,并且调用方能按预期处理。Jest 里同步异常主要用 toThrow,Promise 拒绝主要用 rejects,回调错误则要显式等待测试结束。最常见的误区是把函数先执行了,再把结果交给 expect,这样异常会在断言前就抛出。 ## 同步异常怎么测? toThrow 接收的是一个函数包装,而不是函数调用结果。可以匹配错误类型、完整消息、部分字符串或正则。 ```js function divide(a, b) { if (b === 0) throw new RangeError('Di...
- Jest 如何测试 TypeScript 项目并配置 ts-jest?Jest 测 TypeScript 项目时,先要分清两个问题:测试运行时怎么把 TS 转成 JS,以及类型错误由谁负责检查。ts-jest 可以在 Jest 运行时编译 TypeScript,配置直观,适合希望测试和 tsconfig 保持一致的项目。另一个常见选择是 Babel 或 SWC 转译,它们更快,但通常不做完整类型检查。 ## ts-jest 基础配置怎么写? 先安装 Jest、类型声明和 ts-jest。Node 项目一般使用 node 环境,前端组件或 DOM 工具才需要 jsdom。 ```bash npm i -D jest ts-jest @types/jes...
- Jest 如何测试 fs 文件系统和 I/O 操作?测试文件系统代码时,最重要的问题不是“能不能读写文件”,而是“你的业务逻辑在文件存在、缺失、权限不足、内容损坏时是否处理正确”。Jest 可以 mock fs,也可以配合临时目录做接近真实的集成测试。两种方式都该会用,因为纯 Mock 快但容易脱离真实行为,真实 I/O 准但慢且需要清理。 ## 什么时候 Mock fs? 如果函数只是包装读取、解析和错误处理,mock fs 很合适。它能让测试不依赖本机路径,也不会污染项目目录。 ```js const fs = require('fs') jest.mock('fs') function readConfig(path) { ...
- Jest 如何测试 Redux 的 Action、Reducer 和 Selector?Redux 测试最好按代码职责拆开:action creator 测返回的 action,reducer 测状态如何变化,selector 测派生数据,异步 thunk 或 RTK Query 再测副作用边界。不要把所有东西都塞进一个 React 组件测试里,否则失败时很难判断是 UI、store、接口 Mock,还是 reducer 写错了。Jest 的价值在于让这些纯逻辑可以被快速、稳定地验证。 ## 从 reducer 开始最划算 reducer 通常是纯函数,输入旧 state 和 action,输出新 state。它不需要 DOM,也不需要 mock store,是 Red...
- Jest 如何配合 Vue Test Utils 测试 Vue 组件?Vue 组件测试的核心不是把组件内部每一行都测一遍,而是验证它对外表现是否稳定:传入 props 后渲染什么,用户点击后发生什么,是否 emit 正确事件,依赖插件或异步更新时是否能按预期收尾。Jest 负责断言、Mock 和运行环境,@vue/test-utils 负责把 Vue 组件挂载成可操作的 wrapper。实际项目里,测试越贴近用户行为,后期重构越不容易被测试绑住。 ## 基础配置怎么写? Vue 3 项目常见组合是 Jest、@vue/test-utils 和 @vue/vue3-jest。如果还在 Vue 2,需要换成对应版本的 vue-jest,这是最容易踩的版本坑...
- 什么是 Tauri 框架?它的核心架构如何工作?Tauri 是一个用 Web 前端加 Rust 后端构建跨平台桌面应用的框架。它让你继续使用 React、Vue、Svelte 或普通 HTML 写界面,同时把文件系统、窗口、菜单、通知、自动更新等系统能力放到 Rust 和插件侧处理。和 Electron 最大的不同是,Tauri 不随应用打包完整 Chromium,而是使用操作系统自带 WebView 渲染界面。 ## Tauri 的三层架构 第一层是前端层。它就是一个 Web 应用,可以用 Vite、React、Vue、Svelte,也可以不用框架。前端负责 UI、交互和状态管理,但默认不能随意访问系统资源。 第二层是 Rus...
- Tauri 和 Electron 有什么区别?该怎么选?Tauri 和 Electron 都能用 Web 技术做桌面应用,但它们的默认假设完全不同。Electron 把 Chromium 和 Node.js 一起打进应用,换来一致的浏览器能力和成熟生态;Tauri 使用系统 WebView 加 Rust 后端,换来更小体积、更低权限暴露和更接近原生的系统边界。选哪个,不是简单看“谁更先进”,而是看团队、产品和运行环境能接受哪些取舍。 ## 架构差异 Electron 的应用通常包含 Chromium、Node.js、主进程和渲染进程。好处是跨平台表现更一致,坏处是每个应用都带一套浏览器运行时。Tauri 不打包完整浏览器,而是使用系统 W...
- Tauri 前端和 Rust 后端如何进行 IPC 通信?Tauri 的 IPC 通信,本质上是在 WebView 前端和 Rust 后端之间建立一条受控通道。前端不能直接调用系统 API,而是通过 `invoke` 请求 Rust 命令;Rust 也可以通过事件把状态推回前端。这个模型比“前端拿到完整 Node 能力”更收敛,但也要求你认真设计命令边界、数据结构和错误处理。 ## 前端调用 Rust 命令 Tauri 2 中常用 `@tauri-apps/api/core` 的 `invoke`: ```ts import { invoke } from '@tauri-apps/api/core'; const result = a...
- Tauri 权限系统和安全机制是如何工作的?Tauri 的安全模型可以用一句话概括:前端默认不可信,系统能力默认不给,所有越过 WebView 边界的操作都要显式授权。它不像传统网页只能访问浏览器沙箱,也不像一些桌面框架默认把 Node 能力暴露给页面。Tauri 把系统调用放在 Rust 侧,通过权限、命令、CSP、作用域和插件能力组合控制风险。做得好,应用可以很轻;做得粗糙,前端 XSS 也可能变成读文件、开进程这种桌面级事故。 ## 权限系统的核心逻辑 Tauri 2 更推荐用 capability 文件描述窗口能使用哪些能力。比如只允许主窗口读取用户选择目录下的文件,而不是开放整个文件系统: ```json { ...
- Tauri 中如何集成 React、Vue 或 Svelte?Tauri 集成 React、Vue 或 Svelte 的关键,不是把前端框架“塞进”桌面壳里,而是让前端构建工具、Tauri 开发服务器和 Rust 后端的边界对齐。Tauri 负责窗口、系统 API、打包和权限;React、Vue、Svelte 仍然按普通 Web 项目开发。真正容易出问题的地方,通常是 dev server 端口、构建产物目录、前端路由、Tauri API 版本和安全权限没有配套。 ## 推荐的集成方式 新项目优先用官方脚手架,它会自动生成 `src-tauri`、前端目录和基础配置: ```bash npm create tauri-app@latest c...
- 获得 0 次点赞
- 内容获得 0 次评论
- 获得 0 次收藏
