├── README.md ├── frontend ├── babel.config.js ├── public │ ├── favicon.ico │ └── index.html ├── src │ ├── assets │ │ ├── logo.png │ │ └── logo.svg │ ├── plugins │ │ └── vuetify.js │ ├── App.vue │ ├── store │ │ └── index.js │ ├── components │ │ └── lecture │ │ │ ├── componentTest │ │ │ ├── LocalComponent.vue │ │ │ └── GlobalComponent.vue │ │ │ ├── axiosTest │ │ │ └── AxiosTestForm.vue │ │ │ └── emitTest │ │ │ ├── TableComponent.vue │ │ │ ├── TrComponent.vue │ │ │ └── TdComponent.vue │ ├── .eslintrc.js │ ├── main.js │ ├── views │ │ ├── lecture │ │ │ ├── clickEvent │ │ │ │ └── ClickEventTest.vue │ │ │ ├── bind │ │ │ │ └── BindTest.vue │ │ │ ├── axiosTest │ │ │ │ └── axiosTestPage.vue │ │ │ ├── componentTest │ │ │ │ └── ComponentTest.vue │ │ │ └── emitTest │ │ │ │ └── EmitTestBoardGame.vue │ │ └── HomeView.vue │ └── router │ │ └── index.js ├── vue.config.js ├── .gitignore ├── jsconfig.json ├── README.md └── package.json ├── .gitignore └── LICENSE /README.md: -------------------------------------------------------------------------------- 1 | # Vue-Basics 2 | Vue Basics 3 | -------------------------------------------------------------------------------- /frontend/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EDDI-RobotAcademy/Vue-Basics/HEAD/frontend/public/favicon.ico -------------------------------------------------------------------------------- /frontend/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EDDI-RobotAcademy/Vue-Basics/HEAD/frontend/src/assets/logo.png -------------------------------------------------------------------------------- /frontend/src/plugins/vuetify.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import Vuetify from 'vuetify/lib/framework'; 3 | 4 | Vue.use(Vuetify); 5 | 6 | export default new Vuetify({ 7 | }); 8 | -------------------------------------------------------------------------------- /frontend/vue.config.js: -------------------------------------------------------------------------------- 1 | const { defineConfig } = require('@vue/cli-service') 2 | module.exports = defineConfig({ 3 | lintOnSave: false, 4 | transpileDependencies: [ 5 | 'vuetify' 6 | ] 7 | }) 8 | -------------------------------------------------------------------------------- /frontend/src/App.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | -------------------------------------------------------------------------------- /frontend/src/store/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | 4 | Vue.use(Vuex) 5 | 6 | export default new Vuex.Store({ 7 | state: { 8 | }, 9 | getters: { 10 | }, 11 | mutations: { 12 | }, 13 | actions: { 14 | }, 15 | modules: { 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/componentTest/LocalComponent.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 17 | 18 | -------------------------------------------------------------------------------- /frontend/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /frontend/jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "es5", 4 | "module": "esnext", 5 | "baseUrl": "./", 6 | "moduleResolution": "node", 7 | "paths": { 8 | "@/*": [ 9 | "src/*" 10 | ] 11 | }, 12 | "lib": [ 13 | "esnext", 14 | "dom", 15 | "dom.iterable", 16 | "scripthost" 17 | ] 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Compiled class file 2 | *.class 3 | 4 | # Log file 5 | *.log 6 | 7 | # BlueJ files 8 | *.ctxt 9 | 10 | # Mobile Tools for Java (J2ME) 11 | .mtj.tmp/ 12 | 13 | # Package Files # 14 | *.jar 15 | *.war 16 | *.nar 17 | *.ear 18 | *.zip 19 | *.tar.gz 20 | *.rar 21 | 22 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 23 | hs_err_pid* 24 | -------------------------------------------------------------------------------- /frontend/README.md: -------------------------------------------------------------------------------- 1 | # frontend 2 | 3 | ## Project setup 4 | ``` 5 | npm install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | npm run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | npm run build 16 | ``` 17 | 18 | ### Lints and fixes files 19 | ``` 20 | npm run lint 21 | ``` 22 | 23 | ### Customize configuration 24 | See [Configuration Reference](https://cli.vuejs.org/config/). 25 | -------------------------------------------------------------------------------- /frontend/src/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | browser: true, 4 | es2021: true 5 | }, 6 | extends: [ 7 | 'plugin:vue/essential', 8 | 'standard' 9 | ], 10 | parserOptions: { 11 | ecmaVersion: 12, 12 | sourceType: 'module' 13 | }, 14 | plugins: [ 15 | 'vue' 16 | ], 17 | rules: { 18 | 'vue/multi-word-component-names': ['error', { 19 | ignores: ['Home'] 20 | }], 21 | 'eslint-disable-next-line': "off", 22 | 'eslint-disable': "off" 23 | } 24 | } -------------------------------------------------------------------------------- /frontend/src/main.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | import vuetify from './plugins/vuetify' 6 | 7 | import GlobalComponent from "@/components/lecture/componentTest/GlobalComponent.vue" 8 | 9 | Vue.config.productionTip = false 10 | 11 | // global-component 커스텀 태그 등록 12 | Vue.component(GlobalComponent.name, GlobalComponent) 13 | 14 | new Vue({ 15 | router, 16 | store, 17 | vuetify, 18 | render: h => h(App) 19 | }).$mount('#app') 20 | -------------------------------------------------------------------------------- /frontend/src/views/lecture/clickEvent/ClickEventTest.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 27 | -------------------------------------------------------------------------------- /frontend/src/assets/logo.svg: -------------------------------------------------------------------------------- 1 | Artboard 46 2 | -------------------------------------------------------------------------------- /frontend/src/views/lecture/bind/BindTest.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/componentTest/GlobalComponent.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 26 | 27 | -------------------------------------------------------------------------------- /frontend/src/views/HomeView.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /frontend/src/views/lecture/axiosTest/axiosTestPage.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 35 | 36 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/axiosTest/AxiosTestForm.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 44 | 45 | -------------------------------------------------------------------------------- /frontend/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | <%= htmlWebpackPlugin.options.title %> 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 |
19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2022 EDDI-RobotAcademy 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /frontend/src/views/lecture/componentTest/ComponentTest.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 48 | 49 | -------------------------------------------------------------------------------- /frontend/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | import HomeView from '../views/HomeView.vue' 4 | 5 | import BindTest from "@/views/lecture/bind/BindTest.vue" 6 | import ClickEventTest from "@/views/lecture/clickEvent/ClickEventTest.vue" 7 | import ComponentTest from "@/views/lecture/componentTest/ComponentTest.vue" 8 | 9 | import EmitTestBoardGame from "@/views/lecture/emitTest/EmitTestBoardGame.vue" 10 | 11 | import AxiosTestPage from "@/views/lecture/axiosTest/AxiosTestPage.vue" 12 | 13 | Vue.use(VueRouter) 14 | 15 | const routes = [ 16 | { 17 | path: '/', 18 | name: 'home', 19 | component: HomeView 20 | }, 21 | { 22 | path: '/bind-test', 23 | name: 'BindTest', 24 | component: BindTest 25 | }, 26 | { 27 | path: '/click-test', 28 | name: 'ClickEventTest', 29 | component: ClickEventTest 30 | }, 31 | { 32 | path: '/component-test', 33 | name: 'ComponentTest', 34 | component: ComponentTest 35 | }, 36 | { 37 | path: '/emit-test-board-game', 38 | name: 'EmitTestBoardGame', 39 | component: EmitTestBoardGame 40 | }, 41 | { 42 | path: '/axios-test-page', 43 | name: 'AxiosTestPage', 44 | component: AxiosTestPage 45 | }, 46 | 47 | ] 48 | 49 | const router = new VueRouter({ 50 | mode: 'history', 51 | base: process.env.BASE_URL, 52 | routes 53 | }) 54 | 55 | export default router 56 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/emitTest/TableComponent.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | -------------------------------------------------------------------------------- /frontend/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "frontend", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint" 9 | }, 10 | "dependencies": { 11 | "core-js": "^3.8.3", 12 | "vue": "^2.6.14", 13 | "vue-router": "^3.5.1", 14 | "vuetify": "^2.6.0", 15 | "vuex": "^3.6.2" 16 | }, 17 | "devDependencies": { 18 | "@babel/core": "^7.12.16", 19 | "@babel/eslint-parser": "^7.12.16", 20 | "@vue/cli-plugin-babel": "~5.0.0", 21 | "@vue/cli-plugin-eslint": "~5.0.0", 22 | "@vue/cli-plugin-router": "~5.0.0", 23 | "@vue/cli-plugin-vuex": "~5.0.0", 24 | "@vue/cli-service": "~5.0.0", 25 | "axios": "^1.3.4", 26 | "eslint": "^7.32.0", 27 | "eslint-plugin-vue": "^8.0.3", 28 | "sass": "~1.32.0", 29 | "sass-loader": "^10.0.0", 30 | "vue-cli-plugin-vuetify": "~2.5.8", 31 | "vue-template-compiler": "^2.6.14", 32 | "vuetify-loader": "^1.7.0" 33 | }, 34 | "eslintConfig": { 35 | "root": true, 36 | "env": { 37 | "node": true 38 | }, 39 | "extends": [ 40 | "plugin:vue/essential", 41 | "eslint:recommended" 42 | ], 43 | "parserOptions": { 44 | "parser": "@babel/eslint-parser" 45 | }, 46 | "rules": { 47 | "no-unused-vars": "off" 48 | } 49 | }, 50 | "browserslist": [ 51 | "> 1%", 52 | "last 2 versions", 53 | "not dead" 54 | ] 55 | } 56 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/emitTest/TrComponent.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | -------------------------------------------------------------------------------- /frontend/src/views/lecture/emitTest/EmitTestBoardGame.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 64 | 65 | -------------------------------------------------------------------------------- /frontend/src/components/lecture/emitTest/TdComponent.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 113 | 114 | --------------------------------------------------------------------------------