JavaScript 工具库和扩展是开发者提高效率、简化代码的重要资源。以下是一些常用的 JavaScript 工具库和扩展分类及示例,涵盖数据操作、功能增强、框架扩展等方向:
Lodash
map
、filter
、debounce
、cloneDeep
等)。 import { throttle, uniqBy } from 'lodash';
const throttledFn = throttle(() => console.log('Throttled!'), 1000);
const uniqueList = uniqBy([{id:1}, {id:1}], 'id');
Underscore.js
Ramda
const add = R.add;
const sum = R.reduce(add, 0, [1, 2, 3]); // 6
Day.js
dayjs().format('YYYY-MM-DD'); // 2024-07-20
date-fns
import { format, differenceInDays } from 'date-fns';
format(new Date(), 'yyyy-MM-dd');
differenceInDays(new Date('2024-12-31'), new Date()); // 剩余天数
Axios
axios.get('/api/data').then((res) => console.log(res.data));
Fetch API
Zod
const schema = z.object({ name: z.string().min(3) });
schema.parse({ name: 'Bob' }); // 校验通过
Joi
React Query
const { data } = useQuery('todos', fetchTodos);
Redux Toolkit
const slice = createSlice({ name: 'counter', initialState: 0, reducers: { increment: (state) => state + 1 } });
VueUse
useClipboard
, useDark
)。 const { copy } = useClipboard();
copy('Hello!'); // 复制到剪贴板
Pinia
const nextState = produce(currentState, (draft) => { draft.items.push({ id: 1 }); });
Babel
Webpack / Vite
ESLint / Prettier
Jest
Cypress / Playwright
Faker.js
import { faker } from '@faker-js/faker';
const fakeName = faker.person.fullName();
Chart.js / D3.js
Quill.js / Tiptap
Array.prototype.flatMap
)。 根据项目需求选择合适的工具库,可以显著提升开发效率和代码质量!