文档中心

探索 DWeb 框架的无限可能,构建下一代高性能 Web 应用

扩展系统

DWeb 框架提供了强大的扩展系统,为原生类型(String、Array、Date、Object、Request)提供实用的扩展方法,以及丰富的辅助函数库,帮助开发者提高开发效率。

快速开始

初始化扩展系统

在使用扩展方法之前,需要先初始化扩展系统:

Code
import { setupExtensions } from "@dreamer/dweb";

// 初始化所有内置扩展
setupExtensions();

使用扩展方法

初始化后,可以直接在原生类型上使用扩展方法:

Code
// String 扩展
"hello world".capitalize(); // "Hello world"
"hello-world".toCamelCase(); // "helloWorld"
"[email protected]".isEmail(); // true

// Array 扩展
[1, 2, 3, 2, 1].unique(); // [1, 2, 3]
[{ id: 1 }, { id: 2 }, { id: 1 }].uniqueBy('id'); // [{ id: 1 }, { id: 2 }]

// Date 扩展
new Date().format("YYYY-MM-DD"); // "2024-01-15"
new Date().fromNow(); // "2小时前"
new Date().isToday(); // true

// Object 扩展
const user = { id: 1, name: 'Alice', email: '[email protected]' };
user.pick(['name', 'email']); // { name: 'Alice', email: '[email protected]' }
user.omit(['id']); // { name: 'Alice', email: '[email protected]' }

使用辅助函数

辅助函数可以直接导入使用,无需初始化:

Code
import { 
  validateEmail, 
  formatCurrency, 
  sha256, 
  setCache,
  http,
  all,
  upload,
} from "@dreamer/dweb";

// 验证函数
validateEmail("[email protected]"); // true

// 格式化函数
formatCurrency(1234.56); // "¥1,234.56"

// 加密函数
const hash = await sha256("hello world");

// 缓存函数
setCache("key", "value", 3600); // 缓存1小时

// HTTP 请求
const users = await http.get("/api/users");

// 并发请求
const [users, posts] = await all([
  http.get("/api/users"),
  http.get("/api/posts"),
]);

// 文件上传
await upload("/api/upload", file);

内置扩展

Code
内置扩展包括:

- String 扩展:capitalize、toCamelCase、isEmail 等
- Array 扩展:unique、uniqueBy、groupBy 等
- Date 扩展:format、fromNow、isToday 等
- Object 扩展:pick、omit、deepMerge 等
- Request 扩展:getBody、getQuery 等

更多详细信息,请参考:

辅助函数

Code
辅助函数包括:

- 验证函数:validateEmail、validatePhone 等
- 格式化函数:formatCurrency、formatDate 等
- 加密函数:sha256、md5、sign 等
- 缓存函数:setCache、getCache 等
- HTTP 请求库:http.get、http.post 等
- Web3 操作库:连接、调用合约等
- 工具函数:防抖、节流、深拷贝等
- 存储工具:localStorage/sessionStorage 封装
- URL 工具:URL 解析、构建、查询参数处理
- 时间工具:时间计算、转换、判断等
- 数组工具:数组操作补充工具函数
- 数学工具:数学计算辅助函数
- 文件工具:文件处理工具函数

更多详细信息,请参考:

自定义扩展

你可以注册自定义扩展方法,扩展原生类型的功能。详细说明请参考 自定义扩展 文档。

相关文档