diff options
author | 2021-06-28 10:46:10 -0500 | |
---|---|---|
committer | 2021-06-28 10:46:10 -0500 | |
commit | 7063c04dec48fcabcda104c42d61642a554f6044 (patch) | |
tree | ccc57515b9609f9a211154e2a783ab324ee1b8ed /examples/framework-multiple/src/components | |
parent | 13f50564cb8cfece7857c7b08be064d5e9e9853a (diff) | |
download | astro-7063c04dec48fcabcda104c42d61642a554f6044.tar.gz astro-7063c04dec48fcabcda104c42d61642a554f6044.tar.zst astro-7063c04dec48fcabcda104c42d61642a554f6044.zip |
Restructure examples (#568)
* rename kitchen sink, pull out react example
* split out the rest of the examples
* align versions
* chore: rename examples
* chore: normalize gitignore
* chore: update package versions
* chore: move framework examples to `framework` namespace
* docs: add README to examples
Co-authored-by: Austin Crim <crim.austin@principal.com>
Diffstat (limited to 'examples/framework-multiple/src/components')
7 files changed, 96 insertions, 0 deletions
diff --git a/examples/framework-multiple/src/components/A.astro b/examples/framework-multiple/src/components/A.astro new file mode 100644 index 000000000..702a4be35 --- /dev/null +++ b/examples/framework-multiple/src/components/A.astro @@ -0,0 +1,3 @@ +<div class="children"> + <h1>Hello Astro (A)</h1> +</div> diff --git a/examples/framework-multiple/src/components/B.astro b/examples/framework-multiple/src/components/B.astro new file mode 100644 index 000000000..9022cb372 --- /dev/null +++ b/examples/framework-multiple/src/components/B.astro @@ -0,0 +1,3 @@ +<div class="children"> + <h1>Hello Astro (B)</h1> +</div> diff --git a/examples/framework-multiple/src/components/PreactCounter.tsx b/examples/framework-multiple/src/components/PreactCounter.tsx new file mode 100644 index 000000000..be4ddb6ce --- /dev/null +++ b/examples/framework-multiple/src/components/PreactCounter.tsx @@ -0,0 +1,20 @@ +import { h, Fragment } from 'preact'; +import { useState } from 'preact/hooks'; + +/** a counter written in Preact */ +export function PreactCounter({ children }) { + const [count, setCount] = useState(0); + const add = () => setCount((i) => i + 1); + const subtract = () => setCount((i) => i - 1); + + return ( + <> + <div className="counter"> + <button onClick={subtract}>-</button> + <pre>{count}</pre> + <button onClick={add}>+</button> + </div> + <div className="children">{children}</div> + </> + ); +} diff --git a/examples/framework-multiple/src/components/ReactCounter.jsx b/examples/framework-multiple/src/components/ReactCounter.jsx new file mode 100644 index 000000000..06d8f2513 --- /dev/null +++ b/examples/framework-multiple/src/components/ReactCounter.jsx @@ -0,0 +1,19 @@ +import React, { useState } from 'react'; + +/** a counter written in React */ +export function Counter({ children }) { + const [count, setCount] = useState(0); + const add = () => setCount((i) => i + 1); + const subtract = () => setCount((i) => i - 1); + + return ( + <> + <div className="counter"> + <button onClick={subtract}>-</button> + <pre>{count}</pre> + <button onClick={add}>+</button> + </div> + <div className="children">{children}</div> + </> + ); +} diff --git a/examples/framework-multiple/src/components/SvelteCounter.svelte b/examples/framework-multiple/src/components/SvelteCounter.svelte new file mode 100644 index 000000000..8d6b3f5e1 --- /dev/null +++ b/examples/framework-multiple/src/components/SvelteCounter.svelte @@ -0,0 +1,22 @@ + +<script> + let children; + let count = 0; + + function add() { + count += 1; + } + + function subtract() { + count -= 1; + } +</script> + +<div class="counter"> + <button on:click={subtract}>-</button> + <pre>{ count }</pre> + <button on:click={add}>+</button> +</div> +<div class="children"> + <slot /> +</div> diff --git a/examples/framework-multiple/src/components/VueCounter.vue b/examples/framework-multiple/src/components/VueCounter.vue new file mode 100644 index 000000000..8179fb1d9 --- /dev/null +++ b/examples/framework-multiple/src/components/VueCounter.vue @@ -0,0 +1,27 @@ +<template> + <div class="counter"> + <button @click="subtract()">-</button> + <pre>{{ count }}</pre> + <button @click="add()">+</button> + </div> + <div class="children"> + <slot /> + </div> +</template> + +<script> +import { ref } from 'vue'; +export default { + setup() { + const count = ref(0) + const add = () => count.value = count.value + 1; + const subtract = () => count.value = count.value - 1; + + return { + count, + add, + subtract + } + } +} +</script> diff --git a/examples/framework-multiple/src/components/index.ts b/examples/framework-multiple/src/components/index.ts new file mode 100644 index 000000000..4077dcacd --- /dev/null +++ b/examples/framework-multiple/src/components/index.ts @@ -0,0 +1,2 @@ +export { default as A } from './A.astro'; +export { default as B } from './B.astro'; |