Comments (5)
Based on the usage in the example, how should I write a reusable component?
App
is a component in that example. Probably not one you'd want to use more than once, but you absolutely could. There's no functional difference.
Or how the component should be stored in a separate js file and then used elsewhere
Use standard ES6 imports.
// my-count.js
import { useState } from 'preact/hooks';
import { html } from 'htm/preact';
export function MyCount({ label }) {
const [count, setCount] = useState(0);
return html`
<p>${label}</p>
<button onClick=${() => setCount(count + 1)}>Current count is: ${count}</button>
`;
}
<script type="module">
import { render } from 'preact';
import { useReducer } from 'preact/hooks';
import { html } from 'htm/preact';
import { MyCount } from './my-count.js';
export function App() {
const [count, add] = useReducer((a, b) => a + b, 0);
return html`
<button onClick=${() => add(-1)}>Decrement</button>
<input readonly size="4" value=${count} />
<button onClick=${() => add(1)}>Increment</button>
<${MyCount} label="1" />
<${MyCount} label="2" />
`;
}
render(html`<${App} />`, document.body);
</script>
from preact.
Looking for anything beyond this?
https://preactjs.com/guide/v10/getting-started#using-preact-with-htm-and-importmaps
Edit: Usually people want "buildless", hence HTM + CDNs in that example. Is that what you're after, or do you just want the CDN bit (and still compiling JSX in some form)?
from preact.
Looking for anything beyond this?
https://preactjs.com/guide/v10/getting-started#using-preact-with-htm-and-importmaps
Edit: Usually people want "buildless", hence HTM + CDNs in that example. Is that what you're after, or do you just want the CDN bit (and still compiling JSX in some form)?
This is indeed what I want, but the example is too simple. Based on the usage in the example, how should I write a reusable component? Or how the component should be stored in a separate js file and then used elsewhere
from preact.
Based on the usage in the example, how should I write a reusable component?
App
is a component in that example. Probably not one you'd want to use more than once, but you absolutely could. There's no functional difference.Or how the component should be stored in a separate js file and then used elsewhere
Use standard ES6 imports.
// my-count.js import { useState } from 'preact/hooks'; import { html } from 'htm/preact'; export function MyCount({ label }) { const [count, setCount] = useState(0); return html` <p>${label}</p> <button onClick=${() => setCount(count + 1)}>Current count is: ${count}</button> `; }<script type="module"> import { render } from 'preact'; import { useReducer } from 'preact/hooks'; import { html } from 'htm/preact'; import { MyCount } from './my-count.js'; export function App() { const [count, add] = useReducer((a, b) => a + b, 0); return html` <button onClick=${() => add(-1)}>Decrement</button> <input readonly size="4" value=${count} /> <button onClick=${() => add(1)}>Increment</button> <${MyCount} label="1" /> <${MyCount} label="2" /> `; } render(html`<${App} />`, document.body); </script>
thank
from preact.
No problem, and if you do have any further questions, our Slack is a great place to get faster answers usually.
from preact.
Related Issues (20)
- Aliasing React to Preact in Deno HOT 9
- "Cannot read properties of null (reading '__H')" when hydrating a component in the browser HOT 1
- TypeError: undefined is not an object (evaluating 'this.l[e.type+!1]') HOT 1
- preact+react-modal,Uncaught TypeError: Cannot read properties of null (reading '__H') HOT 9
- Island architecture with partial hydration HOT 3
- preact renders only one iframe if more than one iframe provided to dangerouslySetInnerHTML HOT 2
- When the value of setState remains unchanged, the state-driven controlled component, such as <input/>, seems to no longer be under the influence of the state. HOT 1
- There is no `context` in `preact/compat/PureComponent` and it breaks other libraries like `react-recurly`
- Running the text.test.js test, the results obtained are very poor and differ many times from the expected values in the code. HOT 3
- Components keep being added when updating state HOT 1
- Add JSX TS aria roles for dpub-aria-1.0
- `TypeError: Cannot set properties of null (setting '__m')` with preact 10.19.4 when destroying a component that calls `useId`
- Problem with rendering child component on props changes HOT 3
- "Components keep being added when updating state" issue persists when using tags other than div HOT 1
- preact/compat's SetStateAction is different from React's SetStateAction HOT 4
- useSelector hook stops being called under certain conditions since preact 10.19.4 HOT 3
- Implement onscrollend event attribute for TypeScript JSX
- TypeScript JSX focus events don't have consistent case HOT 5
- Typescript issues in 10.19.4+ with @mui/material HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from preact.