VKUI β ΡΡΠΎ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΡΡ
React-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° Π΄ΠΈΠ·Π°ΠΉΠ½-ΡΠΈΡΡΠ΅ΠΌΠ΅ VK ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΅Ρ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ.
Π Π΅Π»ΠΈΠ·Ρ: https://github.com/VKCOM/VKUI/releases.
ΠΠ°ΠΉΠ΄ ΠΏΠΎ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° Π²Π΅ΡΡΠΈΡ 6.
npm:
npm i @vkontakte/vkui
yarn:
yarn add @vkontakte/vkui
pnpm:
pnpm add @vkontakte/vkui
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ react ΠΈ react-dom Π²Π΅ΡΡΠΈΠΈ
^18.2.0
import * as React from 'react';
import { createRoot } from 'react-dom/client';
import {
AdaptivityProvider,
ConfigProvider,
AppRoot,
SplitLayout,
SplitCol,
View,
Panel,
PanelHeader,
Header,
Group,
SimpleCell,
} from '@vkontakte/vkui';
import '@vkontakte/vkui/dist/vkui.css';
const Example = () => {
const platform = usePlatform();
return (
<AppRoot>
<SplitLayout header={platform !== 'vkcom' && <PanelHeader delimiter="none" />}>
<SplitCol autoSpaced>
<View activePanel="main">
<Panel id="main">
<PanelHeader>VKUI</PanelHeader>
<Group header={<Header size="s">Items</Header>}>
<SimpleCell>Hello</SimpleCell>
<SimpleCell>World</SimpleCell>
</Group>
</Panel>
</View>
</SplitCol>
</SplitLayout>
</AppRoot>
);
};
const container = document.getElementById('root');
const root = createRoot(container); // createRoot(container!) if you use TypeScript
root.render(
<ConfigProvider>
<AdaptivityProvider>
<Example />
</AdaptivityProvider>
</ConfigProvider>,
);
Π‘ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠΌ ΡΠΏΠΈΡΠΊΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ .browserslistrc
ΠΡ ΡΠ°Π±ΠΎΡΠ°Π΅ΠΌ Π½Π°Π΄ ΠΊΠ°ΡΠ΅ΡΡΠ²ΠΎΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Π²ΠΎΠ·ΠΈΠΌ ΡΠ΅ΡΡΡ. yarn test
Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ½ΠΈΡΡ, ΡΠΈΠΏΡ ΠΈ Π»ΠΈΠ½ΡΠΈΡ. Π’Π°ΠΊΠΆΠ΅ ΠΌΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌ ΡΠΊΡΠΈΠ½ΡΠΎΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ (e2e) ΠΈ ΠΏΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ Π±Π°Π·ΠΎΠ²ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ (a11y) ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² β ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π°Ρ Π³Π°ΠΉΠ΄ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Π Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π²Ρ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΠΉΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΈ ΡΡΠΈΠ»ΠΈΡ.
ΠΠ°ΠΏΠΈΡΠΈΡΠ΅ Π½Π°ΠΌ issue, Π΅ΡΠ»ΠΈ Π½Π°ΡΠ»ΠΈ Π±Π°Π³ ΠΈΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π·Π°Π΄Π°ΡΡ Π²ΠΎΠΏΡΠΎΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ΄ΠΈΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π΄ΠΈΡΠΊΡΡΡΠΈΡΠΌΠΈ.
ΠΡ ΠΎΡΠ΅Π½Ρ ΡΠ°Π΄ΡΠ΅ΠΌΡΡ, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°Π΄ Π΅Ρ ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ΠΌ. ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠ»Π΅Π΄ Π² ΠΈΡΡΠΎΡΠΈΠΈ:
- ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ Ρ Π½Π°ΡΠΈΠΌ ΠΌΠ°Π½ΠΈΡΠ΅ΡΡΠΎΠΌ π
- ΠΠ°ΡΠ΅ΠΌ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ π§
- Π ΡΠ΅ΠΏΠ΅ΡΡ ΡΠΌΠ΅Π»ΠΎ Π²Π½ΠΎΡΠΈΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΠΉΡΠ΅ pull request β€οΈ