Başlarken
Kurulum
Terminalinize şunu yazın:
sh
# npm
npm i effsz
# pnpm
pnpm add effsz
# yarn
yarn add effszHızlı başlangıç
Özetle, her bir web bileşeni kullanılmadan önce tanımlanmalıdır. Bu kütüphanedeki her modül, bu amaçla bir fonksiyon sunar:
effsz/limitiçindekiuseLimit, içeriği taştığında görünür öğe sayısını sınırlayan bir kapsayıcı tanımlar;effsz/scrolliçindekiuseScroll, yerel kaydırma (scroll) mekanizmasını temel alan ancak tüm tarayıcılarda aynı şekilde görünen özel kaydırma çubukları ve gölgeler ekleyen bir kapsayıcı tanımlar;effsz/splitiçindekiuseSplit, alanını yeniden boyutlandırılabilir bölmelere (slot) ayıran bir kapsayıcı tanımlar;effsz/masonryiçindekiuseMasonry, bir eksende katı bir ızgara (grid) düzeni, diğer eksende ise "masonry" (tuğla dizilimi benzeri) düzeni kullanan bir kapsayıcı tanımlar. İçeriği bölmeler (slot) aracılığıyla görüntüler; her bir öğenin, sıra numarasını belirten birslotözniteliğine ve en boy oranını (aspect ratio) tanımlayan bir değere sahip olması gerekir. Bu değer,styleözniteliği içindekiaspect-ratioözelliğiyle veyadata-effsz-arözniteliğiyle belirtilebilir. Bu bileşen, farklı en boy oranlarına sahip çok sayıda görseli sergilemek için oldukça kullanışlıdır;effsz/expandiçindekiuseExpand, önceden tanımlanmış maksimum ve minimum boyutlara göre genişletilebilen veya daraltılabilen bir kapsayıcı tanımlar;effsz/carouseliçindekiuseCarousel, bir atlıkarınca (carousel) kapsayıcısı tanımlar;effsz/slideiçindekiuseSlide, içeriğini ekran dışından kayarak gelen (açılan) bir diyalog penceresi şeklinde görüntülemeye olanak tanıyan bir kapsayıcı tanımlar.
Her fonksiyon, bileşenin davranışını kontrol etmenizi sağlayan observe ve unobserve olay işleyicilerini içeren bir nesne döndürür.
Örneğin, bir Split (bölmeli) kapsayıcı kullanmak istediğinizi varsayalım:
jsx
import { useEffect } from 'react';
import { useSplit } from 'effsz/split'
// Kullanmadan önce özel web bileşenini tanımlayın
// SSR için, tarayıcı belge gövdesini ayrıştırmadan önce çağırmanız gerektiğini unutmayın
// bu nedenle belge başlığına ayrı bir tanımlama betiği eklemeniz gerekebilir
const { observe } = useSplit();
export const App = () => {
const ref = useRef();
useEffect(() => {
// web bileşeni olaylarını gözlemleyebilirsiniz
const unobserve = observe((e) => {
// olay işleyicisi
}, ref.current);
// ve takibi bırakabilirsiniz
return () => unobserve();
}, []);
// JSX içinde web bileşenini kullanmanız yeterli
// tüm öznitelikler ISplitContainerAttrs arayüzünde tanımlanmıştır
return <div ref={ref}>
<effsz-split
ini='0.25 0.5'
min='0.25 0.25 0.1'
lmin='0.1'
fdir='rr'
>
<div class='first'>
...
</div>
<div class='second'>
...
</div>
<div class='last'>
...
</div>
</effsz-split>
</div>;
}İşte bu kadar. Sadeliğin tadını çıkarın.