1.2.1 • Published 2 years ago
@dyljhd/use-effect-debugger v1.2.1
Important!
Do NOT use in production environment!
This package is intended to be a debugging tool only!
Therefore, it should be installed within the devDependancies and all usage removed from the codebase before pushing to a production environment.
Reference
Parameter Explanation
effect: Accepts a function that contains imperative, possibly effectful code.deps: The effect will only activate if the values in the list change.debugOptions: A selection of options to customize debug output within the console.consoleOutput: This changes theconsoleoutput method for the changed deps in the console.consoleName: This changes the debug label outputted with the changed deps in the console.depNames: This gives each of the changed deps in the object a named key instead of defaulting to its index in thedepsarray.
Parameter Types
effect:React.EffectCallbackdeps:React.DependencyListdebugOptionsconsoleOutput:"log" | "table" | undefinedconsoleName:string | undefineddepNames:(string | null)[] | undefined
Extra Details
effectanddepsare no different fromuseEffectarguments.consoleNamedefaults touse-effect-debugger.- You can pass
nullwithin thedepNamesarray if you would like to skip naming a particular key. - On mount, a dep's
prevvalue will always beundefined. - A
consoleOutputoflogoutputs usingconsole.log, andtableoutputs usingconsole.table
Example Usage
Code:
function ExampleComponent() {
const [string, setString] = useState('0');
const [number, setNumber] = useState(0);
useEffectDebugger(
() => {
console.log('useEffect ran');
},
[string, number],
{
consoleName: 'USE-EFFECT-DEBUGGER',
depNames: [null, 'Number'],
}
);
function incrementString() {
setString((prev) => String(Number(prev) + 1));
}
function incrementNumber() {
setNumber((prev) => prev + 1);
}
function incrementAll() {
incrementString();
incrementNumber();
}
return (
<>
<p>String: {string}</p>
<p>Number: {number}</p>
<button onClick={incrementString}>Increment String</button>
<button onClick={incrementNumber}>Increment Number</button>
<button onClick={incrementAll}>Increment All</button>
</>
);
}Console Output:
On mount:
"USE-EFFECT-DEBUGGER" {
0: {
prev: undefined,
cur: "0"
},
Number: {
prev: undefined,
cur: 0
},
}"Increment String" onClick event:
"USE-EFFECT-DEBUGGER" {
0: {
prev: "0",
cur: "1"
}
}"Increment Number" onClick event:
"USE-EFFECT-DEBUGGER" {
Number: {
prev: 0,
cur: 1
}
}"Increment All" onClick event:
"USE-EFFECT-DEBUGGER" {
0: {
prev: "1",
cur: "2"
},
Number: {
prev: 1,
cur: 2
},
}