From 19e3b617fd30fdc09011645cfbc2284d89494f83 Mon Sep 17 00:00:00 2001 From: Andreas Zweili Date: Mon, 6 Sep 2021 20:23:59 +0200 Subject: [PATCH] add an example project for reusing composition API code --- .../.browserslistrc | 3 + .../.eslintrc.js | 17 ++++ .../.gitignore | 22 ++++++ .../.prettierrc | 3 + .../HOW-TO-USE.pdf | Bin 0 -> 30967 bytes .../babel.config.js | 5 ++ .../package.json | 23 ++++++ .../public/favicon.ico | Bin 0 -> 4286 bytes .../public/index.html | 17 ++++ .../src/App.vue | 60 ++++++++++++++ .../src/components/AddUser.vue | 28 +++++++ .../src/components/DeleteUser.vue | 28 +++++++ .../src/components/UserAlert.vue | 73 ++++++++++++++++++ .../src/hooks/alert.js | 14 ++++ .../src/main.js | 7 ++ docker-compose.yml | 2 +- 16 files changed, 301 insertions(+), 1 deletion(-) create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/.browserslistrc create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/.eslintrc.js create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/.gitignore create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/.prettierrc create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/HOW-TO-USE.pdf create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/babel.config.js create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/package.json create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/public/favicon.ico create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/public/index.html create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/App.vue create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/components/AddUser.vue create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/components/DeleteUser.vue create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/components/UserAlert.vue create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/hooks/alert.js create mode 100644 2021-09-06_reuse-04-composition-api-starting-project/src/main.js diff --git a/2021-09-06_reuse-04-composition-api-starting-project/.browserslistrc b/2021-09-06_reuse-04-composition-api-starting-project/.browserslistrc new file mode 100644 index 0000000..214388f --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/.browserslistrc @@ -0,0 +1,3 @@ +> 1% +last 2 versions +not dead diff --git a/2021-09-06_reuse-04-composition-api-starting-project/.eslintrc.js b/2021-09-06_reuse-04-composition-api-starting-project/.eslintrc.js new file mode 100644 index 0000000..3391da1 --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/.eslintrc.js @@ -0,0 +1,17 @@ +module.exports = { + root: true, + env: { + node: true + }, + 'extends': [ + 'plugin:vue/vue3-essential', + 'eslint:recommended' + ], + parserOptions: { + parser: 'babel-eslint' + }, + rules: { + 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', + 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' + } +} diff --git a/2021-09-06_reuse-04-composition-api-starting-project/.gitignore b/2021-09-06_reuse-04-composition-api-starting-project/.gitignore new file mode 100644 index 0000000..11f5d71 --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/.gitignore @@ -0,0 +1,22 @@ +.DS_Store +node_modules +/dist + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/2021-09-06_reuse-04-composition-api-starting-project/.prettierrc b/2021-09-06_reuse-04-composition-api-starting-project/.prettierrc new file mode 100644 index 0000000..92cde39 --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/.prettierrc @@ -0,0 +1,3 @@ +{ + "singleQuote": true +} \ No newline at end of file diff --git a/2021-09-06_reuse-04-composition-api-starting-project/HOW-TO-USE.pdf b/2021-09-06_reuse-04-composition-api-starting-project/HOW-TO-USE.pdf new file mode 100644 index 0000000000000000000000000000000000000000..00d28ea25ba03a5bacbdf57e9b723d4682cb9399 GIT binary patch literal 30967 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

6T4Y|44(o56iBl)8*LpP50voDU3U<(eN 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 literal 0 HcmV?d00001 diff --git a/2021-09-06_reuse-04-composition-api-starting-project/public/index.html b/2021-09-06_reuse-04-composition-api-starting-project/public/index.html new file mode 100644 index 0000000..4123528 --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + +

+ + + diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/App.vue b/2021-09-06_reuse-04-composition-api-starting-project/src/App.vue new file mode 100644 index 0000000..5fd610c --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/App.vue @@ -0,0 +1,60 @@ + + + + + \ No newline at end of file diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/components/AddUser.vue b/2021-09-06_reuse-04-composition-api-starting-project/src/components/AddUser.vue new file mode 100644 index 0000000..6930b0e --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/components/AddUser.vue @@ -0,0 +1,28 @@ + + + diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/components/DeleteUser.vue b/2021-09-06_reuse-04-composition-api-starting-project/src/components/DeleteUser.vue new file mode 100644 index 0000000..def907e --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/components/DeleteUser.vue @@ -0,0 +1,28 @@ + + + diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/components/UserAlert.vue b/2021-09-06_reuse-04-composition-api-starting-project/src/components/UserAlert.vue new file mode 100644 index 0000000..d3928cf --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/components/UserAlert.vue @@ -0,0 +1,73 @@ + + + + + \ No newline at end of file diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/hooks/alert.js b/2021-09-06_reuse-04-composition-api-starting-project/src/hooks/alert.js new file mode 100644 index 0000000..e22480c --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/hooks/alert.js @@ -0,0 +1,14 @@ +import { ref } from 'vue'; + +export default function useAlert() { + const alertIsVisible = ref(false); + + function showAlert() { + alertIsVisible.value = true; + } + function hideAlert() { + alertIsVisible.value = false; + } + + return [alertIsVisible, showAlert, hideAlert]; +} diff --git a/2021-09-06_reuse-04-composition-api-starting-project/src/main.js b/2021-09-06_reuse-04-composition-api-starting-project/src/main.js new file mode 100644 index 0000000..c4286c3 --- /dev/null +++ b/2021-09-06_reuse-04-composition-api-starting-project/src/main.js @@ -0,0 +1,7 @@ +import { createApp } from 'vue'; + +import App from './App.vue'; + +const app = createApp(App) + +app.mount('#app'); diff --git a/docker-compose.yml b/docker-compose.yml index 1e2a2ac..82c9980 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -8,4 +8,4 @@ services: ports: - 8080:8080 volumes: - - ./2021-09-06_reuse-01-starting-setup/:/app + - ./2021-09-06_reuse-04-composition-api-starting-project/:/app