mirror of
https://github.com/ershisan99/DevToysWeb.git
synced 2025-12-18 04:59:23 +00:00
perf: memoize some values
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useCallback, useState } from "react";
|
import { useCallback, useMemo, useState } from "react";
|
||||||
|
|
||||||
import { toolGroups } from "@/config/tools";
|
import { toolGroups } from "@/config/tools";
|
||||||
import { safeJsonParse } from "@/lib/json";
|
import { safeJsonParse } from "@/lib/json";
|
||||||
@@ -25,7 +25,7 @@ export default function Page() {
|
|||||||
const [indentation, setIndentation] = useState(indentations.two);
|
const [indentation, setIndentation] = useState(indentations.two);
|
||||||
const [input, setInput] = useState('{\n"foo":"bar"\n}');
|
const [input, setInput] = useState('{\n"foo":"bar"\n}');
|
||||||
|
|
||||||
const parsed = safeJsonParse(input);
|
const parsed = useMemo(() => safeJsonParse(input), [input]);
|
||||||
const output = parsed.map(x => JSON.stringify(x, null, indentation)).unwrapOr("");
|
const output = parsed.map(x => JSON.stringify(x, null, indentation)).unwrapOr("");
|
||||||
|
|
||||||
const clearInput = useCallback(() => setInput(""), []);
|
const clearInput = useCallback(() => setInput(""), []);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useCallback, useState } from "react";
|
import { useCallback, useMemo, useState } from "react";
|
||||||
import MD5 from "crypto-js/md5";
|
import MD5 from "crypto-js/md5";
|
||||||
import SHA1 from "crypto-js/sha1";
|
import SHA1 from "crypto-js/sha1";
|
||||||
import SHA256 from "crypto-js/sha256";
|
import SHA256 from "crypto-js/sha256";
|
||||||
@@ -22,10 +22,10 @@ export default function Page() {
|
|||||||
const [uppercase, setUppercase] = useState(false);
|
const [uppercase, setUppercase] = useState(false);
|
||||||
const [input, setInput] = useState("Hello there !");
|
const [input, setInput] = useState("Hello there !");
|
||||||
|
|
||||||
const newMd5 = MD5(input).toString();
|
const newMd5 = useMemo(() => MD5(input).toString(), [input]);
|
||||||
const newSha1 = SHA1(input).toString();
|
const newSha1 = useMemo(() => SHA1(input).toString(), [input]);
|
||||||
const newSha256 = SHA256(input).toString();
|
const newSha256 = useMemo(() => SHA256(input).toString(), [input]);
|
||||||
const newSha512 = SHA512(input).toString();
|
const newSha512 = useMemo(() => SHA512(input).toString(), [input]);
|
||||||
|
|
||||||
const md5 = uppercase ? newMd5.toUpperCase() : newMd5;
|
const md5 = uppercase ? newMd5.toUpperCase() : newMd5;
|
||||||
const sha1 = uppercase ? newSha1.toUpperCase() : newSha1;
|
const sha1 = uppercase ? newSha1.toUpperCase() : newSha1;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
"use client";
|
"use client";
|
||||||
|
|
||||||
import { useCallback, useState } from "react";
|
import { useCallback, useMemo, useState } from "react";
|
||||||
|
|
||||||
import { toolGroups } from "@/config/tools";
|
import { toolGroups } from "@/config/tools";
|
||||||
import { uuid } from "@/lib/uuid";
|
import { uuid } from "@/lib/uuid";
|
||||||
@@ -38,7 +38,7 @@ export default function Page() {
|
|||||||
const [uuids, setUuids] = useState<string[]>([]);
|
const [uuids, setUuids] = useState<string[]>([]);
|
||||||
const ref = useAutoScroll<HTMLTextAreaElement>([uuids]);
|
const ref = useAutoScroll<HTMLTextAreaElement>([uuids]);
|
||||||
|
|
||||||
const uuidsString = uuids.join("\n");
|
const uuidsString = useMemo(() => uuids.join("\n"), [uuids]);
|
||||||
|
|
||||||
const clearUuids = useCallback(() => setUuids([]), []);
|
const clearUuids = useCallback(() => setUuids([]), []);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user