Telegram Group & Telegram Channel
πŸš€ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ React-прилоТСния: 5 Ρ‚Π΅Ρ…Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚

БСгодня расскаТу Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ React-прилоТСния, Ссли ΠΎΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ.

1️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ React.memo
Если ваш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ рСрСндСрится Π±Π΅Π· ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² React.memo(). Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ пСрСрисовки, Ссли пропсы Π½Π΅ измСнились.


const OptimizedComponent = React.memo(({ data }) => {
return <div>{data}</div>;
});


2️⃣ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ контСкст с useMemo ΠΈ useCallback
Частая ошибка β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² useContext слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π΅Π· ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ useMemo ΠΈ useCallback для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.


const value = useMemo(() => ({ user, logout }), [user]);


3️⃣ Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ состояниС Π½Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ части
Часто программисты хранят вСсь стСйт Π² ΠΎΠ΄Π½ΠΎΠΌ useState, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° части. Π’Π°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Ρ€Π΅Π½Π΄Π΅Ρ€ всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.


const [name, setName] = useState("");
const [age, setAge] = useState(0);


4️⃣ ДинамичСская ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Code Splitting)
Если Ρƒ вас большоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ React.lazy для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ.


const LazyComponent = React.lazy(() => import("./BigComponent"));


5️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ списки
Если Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов (список Π² 1000+ элСмСнтов), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, react-window ΠΈΠ»ΠΈ react-virtualized.


import { FixedSizeList as List } from "react-window";

<List height={400} itemCount={items.length} itemSize={35}>
{({ index, style }) => <div style={style}>{items[index]}</div>}
</List>;


✍️ @React_lib



tg-me.com/React_lib/651
Create:
Last Update:

πŸš€ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ React-прилоТСния: 5 Ρ‚Π΅Ρ…Π½ΠΈΠΊ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚

БСгодня расскаТу Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ React-прилоТСния, Ссли ΠΎΠ½ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Ρ‚ΠΎΡ€ΠΌΠΎΠ·ΠΈΡ‚ΡŒ.

1️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ React.memo
Если ваш ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ рСрСндСрится Π±Π΅Π· ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, ΠΎΠ±Π΅Ρ€Π½ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² React.memo(). Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‚ΠΈΡ‚ Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Π΅ пСрСрисовки, Ссли пропсы Π½Π΅ измСнились.


const OptimizedComponent = React.memo(({ data }) => {
return <div>{data}</div>;
});


2️⃣ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ контСкст с useMemo ΠΈ useCallback
Частая ошибка β€” ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π° Π² useContext слоТных ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π±Π΅Π· ΠΌΠ΅ΠΌΠΎΠΈΠ·Π°Ρ†ΠΈΠΈ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ useMemo ΠΈ useCallback для ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ.


const value = useMemo(() => ({ user, logout }), [user]);


3️⃣ Π Π°Π·Π±Π΅ΠΉΡ‚Π΅ состояниС Π½Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Π΅ части
Часто программисты хранят вСсь стСйт Π² ΠΎΠ΄Π½ΠΎΠΌ useState, Π½ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Ρ€Π°Π·Π±ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π½Π° части. Π’Π°ΠΊ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ€Π΅Ρ€Π΅Π½Π΄Π΅Ρ€ всСго ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°.


const [name, setName] = useState("");
const [age, setAge] = useState(0);


4️⃣ ДинамичСская ΠΏΠΎΠ΄Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (Code Splitting)
Если Ρƒ вас большоС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ React.lazy для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΏΠΎ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΡŽ.


const LazyComponent = React.lazy(() => import("./BigComponent"));


5️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ списки
Если Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов (список Π² 1000+ элСмСнтов), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, react-window ΠΈΠ»ΠΈ react-virtualized.


import { FixedSizeList as List } from "react-window";

<List height={400} itemCount={items.length} itemSize={35}>
{({ index, style }) => <div style={style}>{items[index]}</div>}
</List>;


✍️ @React_lib

BY React


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/React_lib/651

View MORE
Open in Telegram


telegram Telegram | DID YOU KNOW?

Date: |

Telegram auto-delete message, expiring invites, and more

elegram is updating its messaging app with options for auto-deleting messages, expiring invite links, and new unlimited groups, the company shared in a blog post. Much like Signal, Telegram received a burst of new users in the confusion over WhatsApp’s privacy policy and now the company is adopting features that were already part of its competitors’ apps, features which offer more security and privacy. Auto-deleting messages were already possible in Telegram’s encrypted Secret Chats, but this new update for iOS and Android adds the option to make messages disappear in any kind of chat. Auto-delete can be enabled inside of chats, and set to delete either 24 hours or seven days after messages are sent. Auto-delete won’t remove every message though; if a message was sent before the feature was turned on, it’ll stick around. Telegram’s competitors have had similar features: WhatsApp introduced a feature in 2020 and Signal has had disappearing messages since at least 2016.

A Telegram spokesman declined to comment on the bond issue or the amount of the debt the company has due. The spokesman said Telegram’s equipment and bandwidth costs are growing because it has consistently posted more than 40% year-to-year growth in users.

telegram from ms


Telegram React
FROM USA