
22 changed files with 20216 additions and 0 deletions
@ -1,2 +1,14 @@ |
|||||
# vue_routerapp |
# vue_routerapp |
||||
|
|
||||
|
Jednoduchá aplikace pro ukázku Vue Router |
||||
|
|
||||
|
__________ |
||||
|
|
||||
|
Užitečný příkaz |
||||
|
> npm i vue-router@next |
||||
|
|
||||
|
__________ |
||||
|
|
||||
|
Zdroj: |
||||
|
|
||||
|
https://www.vuemastery.com/blog/vue-router-a-tutorial-for-vue-3/ |
@ -0,0 +1,4 @@ |
|||||
|
> 1% |
||||
|
last 2 versions |
||||
|
not dead |
||||
|
not ie 11 |
@ -0,0 +1,18 @@ |
|||||
|
module.exports = { |
||||
|
root: true, |
||||
|
env: { |
||||
|
node: true, |
||||
|
}, |
||||
|
extends: [ |
||||
|
"plugin:vue/vue3-essential", |
||||
|
"eslint:recommended", |
||||
|
"plugin:prettier/recommended", |
||||
|
], |
||||
|
parserOptions: { |
||||
|
parser: "@babel/eslint-parser", |
||||
|
}, |
||||
|
rules: { |
||||
|
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off", |
||||
|
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off", |
||||
|
}, |
||||
|
}; |
@ -0,0 +1,23 @@ |
|||||
|
.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? |
@ -0,0 +1,24 @@ |
|||||
|
# my-router-project |
||||
|
|
||||
|
## Project setup |
||||
|
``` |
||||
|
npm install |
||||
|
``` |
||||
|
|
||||
|
### Compiles and hot-reloads for development |
||||
|
``` |
||||
|
npm run serve |
||||
|
``` |
||||
|
|
||||
|
### Compiles and minifies for production |
||||
|
``` |
||||
|
npm run build |
||||
|
``` |
||||
|
|
||||
|
### Lints and fixes files |
||||
|
``` |
||||
|
npm run lint |
||||
|
``` |
||||
|
|
||||
|
### Customize configuration |
||||
|
See [Configuration Reference](https://cli.vuejs.org/config/). |
@ -0,0 +1,3 @@ |
|||||
|
module.exports = { |
||||
|
presets: ["@vue/cli-plugin-babel/preset"], |
||||
|
}; |
@ -0,0 +1,19 @@ |
|||||
|
{ |
||||
|
"compilerOptions": { |
||||
|
"target": "es5", |
||||
|
"module": "esnext", |
||||
|
"baseUrl": "./", |
||||
|
"moduleResolution": "node", |
||||
|
"paths": { |
||||
|
"@/*": [ |
||||
|
"src/*" |
||||
|
] |
||||
|
}, |
||||
|
"lib": [ |
||||
|
"esnext", |
||||
|
"dom", |
||||
|
"dom.iterable", |
||||
|
"scripthost" |
||||
|
] |
||||
|
} |
||||
|
} |
File diff suppressed because it is too large
@ -0,0 +1,28 @@ |
|||||
|
{ |
||||
|
"name": "my-router-project", |
||||
|
"version": "0.1.0", |
||||
|
"private": true, |
||||
|
"scripts": { |
||||
|
"serve": "vue-cli-service serve", |
||||
|
"build": "vue-cli-service build", |
||||
|
"lint": "vue-cli-service lint" |
||||
|
}, |
||||
|
"dependencies": { |
||||
|
"core-js": "^3.8.3", |
||||
|
"vue": "^3.2.13", |
||||
|
"vue-router": "^4.0.3" |
||||
|
}, |
||||
|
"devDependencies": { |
||||
|
"@babel/core": "^7.12.16", |
||||
|
"@babel/eslint-parser": "^7.12.16", |
||||
|
"@vue/cli-plugin-babel": "~5.0.0", |
||||
|
"@vue/cli-plugin-eslint": "~5.0.0", |
||||
|
"@vue/cli-plugin-router": "~5.0.0", |
||||
|
"@vue/cli-service": "~5.0.0", |
||||
|
"eslint": "^7.32.0", |
||||
|
"eslint-config-prettier": "^8.3.0", |
||||
|
"eslint-plugin-prettier": "^4.0.0", |
||||
|
"eslint-plugin-vue": "^8.0.3", |
||||
|
"prettier": "^2.4.1" |
||||
|
} |
||||
|
} |
After Width: | Height: | Size: 4.2 KiB |
@ -0,0 +1,17 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang=""> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge"> |
||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0"> |
||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico"> |
||||
|
<title><%= htmlWebpackPlugin.options.title %></title> |
||||
|
</head> |
||||
|
<body> |
||||
|
<noscript> |
||||
|
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong> |
||||
|
</noscript> |
||||
|
<div id="app"></div> |
||||
|
<!-- built files will be auto injected --> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,33 @@ |
|||||
|
<template> |
||||
|
<nav> |
||||
|
<router-link to="/">Home</router-link> | |
||||
|
<router-link to="/about">About</router-link> | |
||||
|
<router-link to="/user/Jack">Jack</router-link> | |
||||
|
<router-link to="/user/John">John</router-link> | |
||||
|
<router-link to="/user/James">James</router-link> |
||||
|
</nav> |
||||
|
<router-view /> |
||||
|
</template> |
||||
|
|
||||
|
<style> |
||||
|
#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; |
||||
|
} |
||||
|
|
||||
|
nav a { |
||||
|
font-weight: bold; |
||||
|
color: #2c3e50; |
||||
|
} |
||||
|
|
||||
|
nav a.router-link-exact-active { |
||||
|
color: #42b983; |
||||
|
} |
||||
|
</style> |
After Width: | Height: | Size: 6.7 KiB |
@ -0,0 +1,122 @@ |
|||||
|
<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> |
||||
|
</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> |
||||
|
export default { |
||||
|
name: "HelloWorld", |
||||
|
props: { |
||||
|
msg: String, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<!-- Add "scoped" attribute to limit CSS to this component only --> |
||||
|
<style scoped> |
||||
|
h3 { |
||||
|
margin: 40px 0 0; |
||||
|
} |
||||
|
ul { |
||||
|
list-style-type: none; |
||||
|
padding: 0; |
||||
|
} |
||||
|
li { |
||||
|
display: inline-block; |
||||
|
margin: 0 10px; |
||||
|
} |
||||
|
a { |
||||
|
color: #42b983; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,5 @@ |
|||||
|
import { createApp } from "vue"; |
||||
|
import App from "./App.vue"; |
||||
|
import router from "./router"; |
||||
|
|
||||
|
createApp(App).use(router).mount("#app"); |
@ -0,0 +1,38 @@ |
|||||
|
import { createRouter, createWebHistory } from "vue-router"; |
||||
|
import HomeView from "../views/HomeView.vue"; |
||||
|
import UserView from "../views/UserView.vue"; |
||||
|
import NotFound from "../views/NotFound.vue"; |
||||
|
|
||||
|
const routes = [ |
||||
|
{ |
||||
|
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"), |
||||
|
}, |
||||
|
{ |
||||
|
path: "/user/:name", // <-- notice the colon
|
||||
|
name: "User", |
||||
|
component: UserView, |
||||
|
props: true, |
||||
|
}, |
||||
|
{ |
||||
|
path: "/:catchAll(.*)", |
||||
|
component: NotFound, |
||||
|
}, |
||||
|
]; |
||||
|
|
||||
|
const router = createRouter({ |
||||
|
history: createWebHistory(process.env.BASE_URL), |
||||
|
routes, |
||||
|
}); |
||||
|
|
||||
|
export default router; |
@ -0,0 +1,5 @@ |
|||||
|
<template> |
||||
|
<div class="about"> |
||||
|
<h1>This is an about page</h1> |
||||
|
</div> |
||||
|
</template> |
@ -0,0 +1,18 @@ |
|||||
|
<template> |
||||
|
<div class="home"> |
||||
|
<img alt="Vue logo" src="../assets/logo.png" /> |
||||
|
<HelloWorld msg="Welcome to Your Vue.js App" /> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
// @ is an alias to /src |
||||
|
import HelloWorld from "@/components/HelloWorld.vue"; |
||||
|
|
||||
|
export default { |
||||
|
name: "HomeView", |
||||
|
components: { |
||||
|
HelloWorld, |
||||
|
}, |
||||
|
}; |
||||
|
</script> |
@ -0,0 +1,13 @@ |
|||||
|
<template> |
||||
|
<h1 class="title">404</h1> |
||||
|
<h2>Stranka Nenalezeno</h2> |
||||
|
</template> |
||||
|
|
||||
|
<style scoped> |
||||
|
.title { |
||||
|
font-size: 100px; |
||||
|
margin: auto auto; |
||||
|
padding: auto; |
||||
|
text-align: center; |
||||
|
} |
||||
|
</style> |
@ -0,0 +1,6 @@ |
|||||
|
<template> |
||||
|
<h1>Jmeno uživatele je {{ name }}</h1> |
||||
|
</template> |
||||
|
<script> |
||||
|
export default { props: ["name"] }; |
||||
|
</script> |
@ -0,0 +1,4 @@ |
|||||
|
const { defineConfig } = require("@vue/cli-service"); |
||||
|
module.exports = defineConfig({ |
||||
|
transpileDependencies: true, |
||||
|
}); |
Loading…
Reference in new issue