【React custom hooks】 문자를 순서대로 표시하는 커스텀 훅
개요
진짜는 css로 하는 편이 퍼포먼스는 좋다고 생각합니다만, 조금 귀찮았으므로 커스텀 훅을 준비해 제대로 실장해 보았습니다.
완성형
코드
// カスタムフック
const useDelayText = (delay, time, text) => {
const [resultText, setResultText] = useState('');
// 無限ループに入っちゃうので、useEffectで制御
useEffect(() => {
// 1文字ずつの表示時間を計算
const showIntervalTime = time / text.length;
for (let index = 0; index < text.length; index++) {
// 表示したい文字をスライス
const t = text.slice(0, index + 1);
// delayさせたいので、外側でsetTimeoutを入れる
setTimeout(() => {
// それぞれの文字数ごとにsetTimeoutでスライスした結果をsetしていく
setTimeout(() => setResultText(t), showIntervalTime * (index + 1));
}, [delay])
}
}, []);
return resultText;
}
// 使い方
const First = memo(() => {
const yusou = useDelayText(0, 1000, '車の輸送');
const tax = useDelayText(1000, 1000, '税込価格');
const sijou = useDelayText(2000, 1000, '市場最安値');
return (
<div className={styles.fv}>
<p>{yusou}</p>
<p className={styles.fv_yellow}>{tax}</p>
<p className={styles.fv_red}>{sijou}</p>
</div>
)
});
궁리점
처음에는 delay 시킬 예정은 없었지만, delay 시키지 않는 것과 동시에 문자 나오게 되었습니다.
거기서, delay용의 인수를 우선은 준비해, 거기로부터 어떻게 할까-라고 10초 정도 바라보고 있으면,
「이제 1개 외측에 크게 setTimeout로 둘러싸면 좋겠지?」라고 되어 해 보면 잘 움직였습니다.
감상
범용적으로 사용할 수 있을지 모르고, css로 구현하는 편이 퍼포먼스는 좋다고 생각합니다.
그렇게 퍼포먼스도 의식하지 않고, 적은 문자수라면 이쪽이라도 좋을까-라고 생각하고 있으므로,
사용해 보자! 라고 생각해 어두워지면 기쁩니다! (LGTM 잘하고 있습니다)
Reference
이 문제에 관하여(【React custom hooks】 문자를 순서대로 표시하는 커스텀 훅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takujiro_0529/items/d5034198dff5f39a2e82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
코드
// カスタムフック
const useDelayText = (delay, time, text) => {
const [resultText, setResultText] = useState('');
// 無限ループに入っちゃうので、useEffectで制御
useEffect(() => {
// 1文字ずつの表示時間を計算
const showIntervalTime = time / text.length;
for (let index = 0; index < text.length; index++) {
// 表示したい文字をスライス
const t = text.slice(0, index + 1);
// delayさせたいので、外側でsetTimeoutを入れる
setTimeout(() => {
// それぞれの文字数ごとにsetTimeoutでスライスした結果をsetしていく
setTimeout(() => setResultText(t), showIntervalTime * (index + 1));
}, [delay])
}
}, []);
return resultText;
}
// 使い方
const First = memo(() => {
const yusou = useDelayText(0, 1000, '車の輸送');
const tax = useDelayText(1000, 1000, '税込価格');
const sijou = useDelayText(2000, 1000, '市場最安値');
return (
<div className={styles.fv}>
<p>{yusou}</p>
<p className={styles.fv_yellow}>{tax}</p>
<p className={styles.fv_red}>{sijou}</p>
</div>
)
});
궁리점
처음에는 delay 시킬 예정은 없었지만, delay 시키지 않는 것과 동시에 문자 나오게 되었습니다.
거기서, delay용의 인수를 우선은 준비해, 거기로부터 어떻게 할까-라고 10초 정도 바라보고 있으면,
「이제 1개 외측에 크게 setTimeout로 둘러싸면 좋겠지?」라고 되어 해 보면 잘 움직였습니다.
감상
범용적으로 사용할 수 있을지 모르고, css로 구현하는 편이 퍼포먼스는 좋다고 생각합니다.
그렇게 퍼포먼스도 의식하지 않고, 적은 문자수라면 이쪽이라도 좋을까-라고 생각하고 있으므로,
사용해 보자! 라고 생각해 어두워지면 기쁩니다! (LGTM 잘하고 있습니다)
Reference
이 문제에 관하여(【React custom hooks】 문자를 순서대로 표시하는 커스텀 훅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takujiro_0529/items/d5034198dff5f39a2e82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
// カスタムフック
const useDelayText = (delay, time, text) => {
const [resultText, setResultText] = useState('');
// 無限ループに入っちゃうので、useEffectで制御
useEffect(() => {
// 1文字ずつの表示時間を計算
const showIntervalTime = time / text.length;
for (let index = 0; index < text.length; index++) {
// 表示したい文字をスライス
const t = text.slice(0, index + 1);
// delayさせたいので、外側でsetTimeoutを入れる
setTimeout(() => {
// それぞれの文字数ごとにsetTimeoutでスライスした結果をsetしていく
setTimeout(() => setResultText(t), showIntervalTime * (index + 1));
}, [delay])
}
}, []);
return resultText;
}
// 使い方
const First = memo(() => {
const yusou = useDelayText(0, 1000, '車の輸送');
const tax = useDelayText(1000, 1000, '税込価格');
const sijou = useDelayText(2000, 1000, '市場最安値');
return (
<div className={styles.fv}>
<p>{yusou}</p>
<p className={styles.fv_yellow}>{tax}</p>
<p className={styles.fv_red}>{sijou}</p>
</div>
)
});
처음에는 delay 시킬 예정은 없었지만, delay 시키지 않는 것과 동시에 문자 나오게 되었습니다.
거기서, delay용의 인수를 우선은 준비해, 거기로부터 어떻게 할까-라고 10초 정도 바라보고 있으면,
「이제 1개 외측에 크게 setTimeout로 둘러싸면 좋겠지?」라고 되어 해 보면 잘 움직였습니다.
감상
범용적으로 사용할 수 있을지 모르고, css로 구현하는 편이 퍼포먼스는 좋다고 생각합니다.
그렇게 퍼포먼스도 의식하지 않고, 적은 문자수라면 이쪽이라도 좋을까-라고 생각하고 있으므로,
사용해 보자! 라고 생각해 어두워지면 기쁩니다! (LGTM 잘하고 있습니다)
Reference
이 문제에 관하여(【React custom hooks】 문자를 순서대로 표시하는 커스텀 훅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/takujiro_0529/items/d5034198dff5f39a2e82
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【React custom hooks】 문자를 순서대로 표시하는 커스텀 훅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/takujiro_0529/items/d5034198dff5f39a2e82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)