chore: update readme
This commit is contained in:
parent
29ad406bdf
commit
3112df437f
1 changed files with 10 additions and 10 deletions
20
README.md
20
README.md
|
@ -5,16 +5,6 @@ Utilities for serializing data from server for use in the client.
|
|||
1. `Serialize` Astro component takes `id` and `data`
|
||||
1. `deserialize(id: string)` function for use int he client takes an `id` string and returns the `data`
|
||||
|
||||
## What's happening here?
|
||||
|
||||
For simple applications with just a few components, this is a quick pattern to embed serialized information into your HTML. The `Serialize` component will do this for you, currently by using a hidden `textarea` element to hold the string.
|
||||
|
||||
The `deserialize()` function can then parse the value string for use in your client script. You have to manage the IDs yourself (i.e., make sure they are unique) and understand that the `deserialize()` function will crawl the whole document incurring some minimal performance.
|
||||
|
||||
Another approach we see in other frameworks is embedding JSON in your HTML and the frameworks themselves managing/tracking the IDs for you, but we don't have access to this yet in Astro.
|
||||
|
||||
There is a pattern [given in the Astro docs](https://docs.astro.build/en/guides/client-side-scripts/#pass-frontmatter-variables-to-scripts) to use a Custom Element that takes a `data-` prop which properly protects the scope of your component. That is a good pattern to follow for complex applications that don't use UI frameworks.
|
||||
|
||||
## Installation & Examples
|
||||
|
||||
### Install via npm
|
||||
|
@ -104,6 +94,16 @@ export interface Props {
|
|||
</script>
|
||||
```
|
||||
|
||||
## What's happening here?
|
||||
|
||||
For simple applications with just a few components, this is a quick pattern to embed serialized information into your HTML. The `Serialize` component will do this for you, currently by using a hidden `textarea` element to hold the string.
|
||||
|
||||
The `deserialize()` function can then parse the value string for use in your client script. You have to manage the IDs yourself (i.e., make sure they are unique) and understand that the `deserialize()` function will crawl the whole document incurring some performance cost.
|
||||
|
||||
Another approach we see in other frameworks is embedding JSON in your HTML and the frameworks themselves managing/tracking the IDs for you, but we don't have access to this yet in Astro.
|
||||
|
||||
There is a pattern [given in the Astro docs](https://docs.astro.build/en/guides/client-side-scripts/#pass-frontmatter-variables-to-scripts) to use a Custom Element that takes a `data-` prop which properly protects the scope of your component. That is a good pattern to follow for complex applications that don't use UI frameworks.
|
||||
|
||||
## Reporting Issues
|
||||
|
||||
To report issues or request features, send a plain text email to [~ayoayco/astro-resume@todo.sr.ht](mailto:~ayoayco/astro-resume@todo.sr.ht) or file a ticket via [SourceHut](https://todo.sr.ht/~ayoayco/astro-resume)
|
||||
|
|
Loading…
Reference in a new issue