diff options
Diffstat (limited to 'master/src')
-rw-r--r-- | master/src/App.vue | 30 | ||||
-rw-r--r-- | master/src/assets/logo.png | bin | 0 -> 6849 bytes | |||
-rw-r--r-- | master/src/components/HelloWorld.vue | 64 | ||||
-rw-r--r-- | master/src/main.ts | 5 | ||||
-rw-r--r-- | master/src/router/index.ts | 25 | ||||
-rw-r--r-- | master/src/shims-vue.d.ts | 6 | ||||
-rw-r--r-- | master/src/views/AboutView.vue | 5 | ||||
-rw-r--r-- | master/src/views/HomeView.vue | 18 |
8 files changed, 153 insertions, 0 deletions
diff --git a/master/src/App.vue b/master/src/App.vue new file mode 100644 index 0000000..ec98c47 --- /dev/null +++ b/master/src/App.vue @@ -0,0 +1,30 @@ +<template> + <nav> + <router-link to="/">Home</router-link> | + <router-link to="/about">About</router-link> + </nav> + <router-view/> +</template> + +<style lang="scss"> +#app { + font-family: Avenir, Helvetica, Arial, sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-align: center; + color: #2c3e50; +} + +nav { + padding: 30px; + + a { + font-weight: bold; + color: #2c3e50; + + &.router-link-exact-active { + color: #42b983; + } + } +} +</style> diff --git a/master/src/assets/logo.png b/master/src/assets/logo.png Binary files differnew file mode 100644 index 0000000..f3d2503 --- /dev/null +++ b/master/src/assets/logo.png diff --git a/master/src/components/HelloWorld.vue b/master/src/components/HelloWorld.vue new file mode 100644 index 0000000..f68982b --- /dev/null +++ b/master/src/components/HelloWorld.vue @@ -0,0 +1,64 @@ +<template> + <div class="hello"> + <h1>{{ msg }}</h1> + <p> + For a guide and recipes on how to configure / customize this project,<br> + check out the + <a href="https://cli.vuejs.org" target="_blank" rel="noopener">vue-cli documentation</a>. + </p> + <h3>Installed CLI Plugins</h3> + <ul> + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-babel" target="_blank" rel="noopener">babel</a></li> + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-router" target="_blank" rel="noopener">router</a></li> + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-eslint" target="_blank" rel="noopener">eslint</a></li> + <li><a href="https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-typescript" target="_blank" rel="noopener">typescript</a></li> + </ul> + <h3>Essential Links</h3> + <ul> + <li><a href="https://vuejs.org" target="_blank" rel="noopener">Core Docs</a></li> + <li><a href="https://forum.vuejs.org" target="_blank" rel="noopener">Forum</a></li> + <li><a href="https://chat.vuejs.org" target="_blank" rel="noopener">Community Chat</a></li> + <li><a href="https://twitter.com/vuejs" target="_blank" rel="noopener">Twitter</a></li> + <li><a href="https://news.vuejs.org" target="_blank" rel="noopener">News</a></li> + </ul> + <h3>Ecosystem</h3> + <ul> + <li><a href="https://router.vuejs.org" target="_blank" rel="noopener">vue-router</a></li> + <li><a href="https://vuex.vuejs.org" target="_blank" rel="noopener">vuex</a></li> + <li><a href="https://github.com/vuejs/vue-devtools#vue-devtools" target="_blank" rel="noopener">vue-devtools</a></li> + <li><a href="https://vue-loader.vuejs.org" target="_blank" rel="noopener">vue-loader</a></li> + <li><a href="https://github.com/vuejs/awesome-vue" target="_blank" rel="noopener">awesome-vue</a></li> + </ul> + </div> +</template> + +<script lang="ts"> +import { Options, Vue } from 'vue-class-component' + +@Options({ + props: { + msg: String + } +}) +export default class HelloWorld extends Vue { + msg!: string +} +</script> + +<!-- Add "scoped" attribute to limit CSS to this component only --> +<style scoped lang="scss"> +h3 { + margin: 40px 0 0; +} +ul { + list-style-type: none; + padding: 0; +} +li { + display: inline-block; + margin: 0 10px; +} +a { + color: #42b983; +} +</style> diff --git a/master/src/main.ts b/master/src/main.ts new file mode 100644 index 0000000..3e79677 --- /dev/null +++ b/master/src/main.ts @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import App from './App.vue' +import router from './router' + +createApp(App).use(router).mount('#app') diff --git a/master/src/router/index.ts b/master/src/router/index.ts new file mode 100644 index 0000000..df8090e --- /dev/null +++ b/master/src/router/index.ts @@ -0,0 +1,25 @@ +import { createRouter, createWebHashHistory, RouteRecordRaw } from 'vue-router' +import HomeView from '../views/HomeView.vue' + +const routes: Array<RouteRecordRaw> = [ + { + path: '/', + name: 'home', + component: HomeView + }, + { + path: '/about', + name: 'about', + // route level code-splitting + // this generates a separate chunk (about.[hash].js) for this route + // which is lazy-loaded when the route is visited. + component: () => import(/* webpackChunkName: "about" */ '../views/AboutView.vue') + } +] + +const router = createRouter({ + history: createWebHashHistory(), + routes +}) + +export default router diff --git a/master/src/shims-vue.d.ts b/master/src/shims-vue.d.ts new file mode 100644 index 0000000..3804a43 --- /dev/null +++ b/master/src/shims-vue.d.ts @@ -0,0 +1,6 @@ +/* eslint-disable */ +declare module '*.vue' { + import type { DefineComponent } from 'vue' + const component: DefineComponent<{}, {}, any> + export default component +} diff --git a/master/src/views/AboutView.vue b/master/src/views/AboutView.vue new file mode 100644 index 0000000..3fa2807 --- /dev/null +++ b/master/src/views/AboutView.vue @@ -0,0 +1,5 @@ +<template> + <div class="about"> + <h1>This is an about page</h1> + </div> +</template> diff --git a/master/src/views/HomeView.vue b/master/src/views/HomeView.vue new file mode 100644 index 0000000..8e628bd --- /dev/null +++ b/master/src/views/HomeView.vue @@ -0,0 +1,18 @@ +<template> + <div class="home"> + <img alt="Vue logo" src="../assets/logo.png"> + <HelloWorld msg="Welcome to Your Vue.js + TypeScript App"/> + </div> +</template> + +<script lang="ts"> +import { Options, Vue } from 'vue-class-component' +import HelloWorld from '@/components/HelloWorld.vue' // @ is an alias to /src + +@Options({ + components: { + HelloWorld + } +}) +export default class HomeView extends Vue {} +</script> |