Библиотека Cash представляет собой легковесную альтернативу jQuery, предназначенную для работы с DOM в современных браузерах. Основное преимущество — минимальный размер и высокая скорость выполнения типичных операций с элементами страницы.
Для подключения Cash доступны несколько способов:
Через npm:
npm install cash-dom
После установки подключение в проекте на ES6 выглядит так:
import $ from 'cash-dom';
Для проектов на CommonJS используется:
const $ = require('cash-dom');
Через CDN:
После подключения переменная $ становится доступной
глобально.
Cash можно интегрировать практически с любым современным сборщиком модулей:
Webpack поддерживает ES-модули, поэтому подключение через
import $ from 'cash-dom' осуществляется без дополнительных
настроек. Для проектов с Babel рекомендуется убедиться, что установлен
пресет @babel/preset-env для поддержки всех нужных функций
JavaScript.
Пример конфигурации:
module.exports = {
entry: './src/index.js',
output: {
filename: 'bundle.js',
path: __dirname + '/dist'
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
};
Vite автоматически обрабатывает ES-модули и поддерживает hot-reload.
Подключение Cash через import $ from 'cash-dom' работает
без дополнительной настройки. Достаточно указать файл входа в
vite.config.js:
import { defineConfig } from 'vite';
export default defineConfig({
root: './src',
build: {
outDir: '../dist'
}
});
Parcel позволяет использовать Cash напрямую через npm:
npm install cash-dom
Parcel автоматически распознаёт ES-модули, поэтому подключение идентично Webpack:
import $ from 'cash-dom';
Для корректной работы с TypeScript рекомендуется установить типы:
npm install --save-dev @types/cash-dom
Это обеспечит подсказки типов, автодополнение и проверку на этапе компиляции. После установки можно использовать Cash точно так же, как и в Jav * aScript:
import $ from 'cash-dom';
$('.button').on('click', () => {
console.log('Клик обработан');
});
Cash имеет небольшой размер, но при сборке важно исключить лишние
зависимости. В Webpack можно использовать tree-shaking,
чтобы исключить неиспользуемые функции:
import { ajax, addClass } from 'cash-dom';
Таким образом, в финальный бандл попадут только необходимые методы.
Cash может использоваться совместно с React, Vue или Svelte для выполнения низкоуровневых операций с DOM:
Пример с React:
import React, { useEffect } from 'react';
import $ from 'cash-dom';
export default function App() {
useEffect(() => {
$('.highlight').addClass('active');
}, []);
return Текст;
}
В Vue или Svelte подход аналогичен: Cash вызывается внутри lifecycle
hooks (mounted для Vue, onMount для Svelte),
чтобы обеспечить безопасное обращение к DOM после его рендеринга.
Cash поддерживает оба стандарта. При использовании ES-модулей
достаточно import $ from 'cash-dom'. Для CommonJS —
const $ = require('cash-dom'). Такая универсальность
облегчает миграцию проектов с jQuery на Cash без полной переработки
сборки.
Для проектов с большим количеством скриптов рекомендуется: