summaryrefslogtreecommitdiff
path: root/master/src
diff options
context:
space:
mode:
Diffstat (limited to 'master/src')
-rw-r--r--master/src/App.vue30
-rw-r--r--master/src/assets/logo.pngbin0 -> 6849 bytes
-rw-r--r--master/src/components/HelloWorld.vue64
-rw-r--r--master/src/main.ts5
-rw-r--r--master/src/router/index.ts25
-rw-r--r--master/src/shims-vue.d.ts6
-rw-r--r--master/src/views/AboutView.vue5
-rw-r--r--master/src/views/HomeView.vue18
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
new file mode 100644
index 0000000..f3d2503
--- /dev/null
+++ b/master/src/assets/logo.png
Binary files differ
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>