$purify utility
$purify
converts stringified data back to its original version. In JavaScript, any object passed via template literals will turn to [Object object]
. To avoid that from happening, $render
introduces stringify
to convert data to a string before passing it to template literals.
$purify(stringifiedData);
By default, $render
uses $purify
internally on any props passed to a component or any utilities so you don't need to do it yourself. The only time you need $purify
is when you don't use $render
component and internal utilities.
That means you need to $purify
a stringified
data passed to a function.
const App = () => {
const media = {};
return `
<div id="main">
<article>
<Player />
<Playlist />
<Overlay />
</article>
<button onClick="transformMedia(stringify(${media}))">transform media</button>
</div>
`;
}
In this case, you need to use $purify
to manually convert the argument received in transformMedia
to its original version because it doesn't pass through $render component or internal utilities.
- When you can't use $purify
function add(props) {
const result = props.first + props.second;
$render(Calculator, result);
}
function Calculator(result) {
return `
<div id="calc">
${result ? `updated to ${result}` : ""}
<button
onClick="$trigger(${add}, null, {first:4, second:5})">
add
</button>
</div>
`;
}
You don't need to $purify
operands passed to add
utility as it passes through an internal utility ($trigger
).
In short, you only use $purify
when you stringify
data and the data doesn't pass through $render
.
Click to check the common errors in using $purify
.