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-vue | |
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-vue')
-rw-r--r-- | examples/framework-vue/.gitignore | 18 | ||||
-rw-r--r-- | examples/framework-vue/.npmrc | 2 | ||||
-rw-r--r-- | examples/framework-vue/README.md | 5 | ||||
-rw-r--r-- | examples/framework-vue/package.json | 15 | ||||
-rw-r--r-- | examples/framework-vue/src/components/Counter.vue | 27 | ||||
-rw-r--r-- | examples/framework-vue/src/pages/index.astro | 38 |
6 files changed, 105 insertions, 0 deletions
diff --git a/examples/framework-vue/.gitignore b/examples/framework-vue/.gitignore new file mode 100644 index 000000000..d436c6dad --- /dev/null +++ b/examples/framework-vue/.gitignore @@ -0,0 +1,18 @@ +# build output +dist + +# dependencies +node_modules/ +.snowpack/ + +# logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# environment variables +.env +.env.production + +# macOS-specific files +.DS_Store diff --git a/examples/framework-vue/.npmrc b/examples/framework-vue/.npmrc new file mode 100644 index 000000000..0cc653b2c --- /dev/null +++ b/examples/framework-vue/.npmrc @@ -0,0 +1,2 @@ +## force pnpm to hoist +shamefully-hoist = true
\ No newline at end of file diff --git a/examples/framework-vue/README.md b/examples/framework-vue/README.md new file mode 100644 index 000000000..a6c4683ba --- /dev/null +++ b/examples/framework-vue/README.md @@ -0,0 +1,5 @@ +# Using Vue with Astro + +This example showcases Astro's built-in support for [Vue (`v3.x`)](https://v3.vuejs.org/). + +No configuration is needed to enable Vue support—just start writing Vue components in `src/components`. diff --git a/examples/framework-vue/package.json b/examples/framework-vue/package.json new file mode 100644 index 000000000..b7bb5b67d --- /dev/null +++ b/examples/framework-vue/package.json @@ -0,0 +1,15 @@ +{ + "name": "@astrojs/example-framework-vue", + "private": true, + "version": "0.0.1", + "scripts": { + "start": "astro dev", + "build": "astro build" + }, + "devDependencies": { + "astro": "^0.15.1" + }, + "snowpack": { + "workspaceRoot": "../.." + } +} diff --git a/examples/framework-vue/src/components/Counter.vue b/examples/framework-vue/src/components/Counter.vue new file mode 100644 index 000000000..8179fb1d9 --- /dev/null +++ b/examples/framework-vue/src/components/Counter.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-vue/src/pages/index.astro b/examples/framework-vue/src/pages/index.astro new file mode 100644 index 000000000..949012d0f --- /dev/null +++ b/examples/framework-vue/src/pages/index.astro @@ -0,0 +1,38 @@ +--- +import Counter from '../components/Counter.vue' +--- + +<html> + <head> + <meta charset="utf-8" /> + <meta + name="viewport" + content="width=device-width, initial-scale=1, viewport-fit=cover" + /> + <style> + :global(:root) { + font-family: system-ui; + padding: 2em 0; + } + :global(.counter) { + display: grid; + grid-template-columns: repeat(3, minmax(0, 1fr)); + place-items: center; + font-size: 2em; + margin-top: 2em; + } + :global(.children) { + display: grid; + place-items: center; + margin-bottom: 2em; + } + </style> + </head> + <body> + <main> + <Counter:visible> + <h1>Hello Vue!</h1> + </Counter:visible> + </main> + </body> +</html> |