├── .gitignore
├── vuex-v2
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── components
│ │ ├── UserList.vue
│ │ └── UserRegistration.vue
│ ├── App.vue
│ └── main.js
├── babel.config.js
├── .gitignore
├── README.md
└── package.json
├── vuex-v3
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── main.js
│ ├── components
│ │ ├── UserList.vue
│ │ └── UserRegistration.vue
│ └── App.vue
├── babel.config.js
├── .gitignore
├── README.md
└── package.json
├── router-v2
├── babel.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── pages
│ │ ├── WelcomeScreen.vue
│ │ └── UsersList.vue
│ ├── main.js
│ ├── App.vue
│ └── components
│ │ └── TheHeader.vue
├── .gitignore
├── README.md
└── package.json
├── router-v3
├── babel.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── pages
│ │ ├── WelcomeScreen.vue
│ │ └── UsersList.vue
│ ├── main.js
│ ├── App.vue
│ └── components
│ │ └── TheHeader.vue
├── .gitignore
├── README.md
└── package.json
├── composition-api
├── babel.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── main.js
│ ├── components
│ │ ├── GoalsList.vue
│ │ ├── CourseGoals.vue
│ │ └── AddGoal.vue
│ └── App.vue
├── .gitignore
├── README.md
└── package.json
├── teleport-fragments
├── babel.config.js
├── public
│ ├── favicon.ico
│ └── index.html
├── src
│ ├── assets
│ │ └── logo.png
│ ├── main.js
│ ├── App.vue
│ └── components
│ │ ├── AdminMode.vue
│ │ ├── AdminCenter.vue
│ │ └── ConfirmDialog.vue
├── .gitignore
├── README.md
└── package.json
├── transitions-v2
├── app.js
├── styles.css
└── index.html
├── transitions-v3
├── app.js
├── styles.css
└── index.html
├── basic-app-v2
├── app.js
└── index.html
└── basic-app-v3
├── app.js
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules
--------------------------------------------------------------------------------
/vuex-v2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/vuex-v2/public/favicon.ico
--------------------------------------------------------------------------------
/vuex-v2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/vuex-v2/src/assets/logo.png
--------------------------------------------------------------------------------
/vuex-v3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/vuex-v3/public/favicon.ico
--------------------------------------------------------------------------------
/vuex-v3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/vuex-v3/src/assets/logo.png
--------------------------------------------------------------------------------
/router-v2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/router-v2/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/router-v2/public/favicon.ico
--------------------------------------------------------------------------------
/router-v2/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/router-v2/src/assets/logo.png
--------------------------------------------------------------------------------
/router-v3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/router-v3/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/router-v3/public/favicon.ico
--------------------------------------------------------------------------------
/router-v3/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/router-v3/src/assets/logo.png
--------------------------------------------------------------------------------
/vuex-v2/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/vuex-v3/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/composition-api/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/composition-api/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/composition-api/public/favicon.ico
--------------------------------------------------------------------------------
/composition-api/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/composition-api/src/assets/logo.png
--------------------------------------------------------------------------------
/teleport-fragments/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/composition-api/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | createApp(App).mount('#app')
5 |
--------------------------------------------------------------------------------
/teleport-fragments/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/teleport-fragments/public/favicon.ico
--------------------------------------------------------------------------------
/teleport-fragments/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/academind/vue-3-update/HEAD/teleport-fragments/src/assets/logo.png
--------------------------------------------------------------------------------
/teleport-fragments/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue'
2 | import App from './App.vue'
3 |
4 | createApp(App).mount('#app')
5 |
--------------------------------------------------------------------------------
/router-v2/src/pages/WelcomeScreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Welcome to this app!
4 |
5 |
--------------------------------------------------------------------------------
/router-v3/src/pages/WelcomeScreen.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Welcome to this app!
4 |
5 |
--------------------------------------------------------------------------------
/vuex-v3/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 |
3 | import App from './App.vue';
4 |
5 | // Add Vuex!
6 |
7 | createApp(App).mount('#app');
8 |
--------------------------------------------------------------------------------
/router-v3/src/main.js:
--------------------------------------------------------------------------------
1 | import { createApp } from 'vue';
2 |
3 | import App from './App.vue';
4 |
5 | // Add router!
6 |
7 | createApp(App).mount('#app');
8 |
--------------------------------------------------------------------------------
/transitions-v2/app.js:
--------------------------------------------------------------------------------
1 | new Vue({
2 | el: '#app',
3 | data: {
4 | isVisible: true
5 | },
6 | methods: {
7 | toggleBox() {
8 | this.isVisible = !this.isVisible;
9 | }
10 | },
11 | });
12 |
--------------------------------------------------------------------------------
/transitions-v3/app.js:
--------------------------------------------------------------------------------
1 | new Vue({
2 | el: '#app',
3 | data: {
4 | isVisible: true
5 | },
6 | methods: {
7 | toggleBox() {
8 | this.isVisible = !this.isVisible;
9 | }
10 | },
11 | });
12 |
--------------------------------------------------------------------------------
/router-v2/src/pages/UsersList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Our Users
4 |
5 | - Max
6 | - Manuel
7 | - Julie
8 |
9 |
10 |
--------------------------------------------------------------------------------
/router-v3/src/pages/UsersList.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Our Users
4 |
5 | - Max
6 | - Manuel
7 | - Julie
8 |
9 |
10 |
--------------------------------------------------------------------------------
/router-v2/.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 |
--------------------------------------------------------------------------------
/router-v3/.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 |
--------------------------------------------------------------------------------
/vuex-v2/.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 |
--------------------------------------------------------------------------------
/vuex-v3/.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 |
--------------------------------------------------------------------------------
/composition-api/.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 |
--------------------------------------------------------------------------------
/teleport-fragments/.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 |
--------------------------------------------------------------------------------
/vuex-v2/README.md:
--------------------------------------------------------------------------------
1 | # vuex-v2
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 |
--------------------------------------------------------------------------------
/vuex-v3/README.md:
--------------------------------------------------------------------------------
1 | # vuex-v3
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 |
--------------------------------------------------------------------------------
/router-v2/README.md:
--------------------------------------------------------------------------------
1 | # router-v2
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 |
--------------------------------------------------------------------------------
/router-v3/README.md:
--------------------------------------------------------------------------------
1 | # router-v3
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 |
--------------------------------------------------------------------------------
/basic-app-v2/app.js:
--------------------------------------------------------------------------------
1 | Vue.component('the-button', {
2 | template: '',
3 | methods: {
4 | updateMessage() {
5 | this.$emit('update');
6 | },
7 | },
8 | });
9 |
10 | new Vue({
11 | el: '#app',
12 | data: {
13 | message: 'This works in Vue 2!',
14 | },
15 | methods: {
16 | changeMessage() {
17 | this.message = 'Will it work in Vue 3?';
18 | },
19 | },
20 | });
21 |
--------------------------------------------------------------------------------
/basic-app-v3/app.js:
--------------------------------------------------------------------------------
1 | Vue.component('the-button', {
2 | template: '',
3 | methods: {
4 | updateMessage() {
5 | this.$emit('update');
6 | },
7 | },
8 | });
9 |
10 | new Vue({
11 | el: '#app',
12 | data: {
13 | message: 'This works in Vue 2!',
14 | },
15 | methods: {
16 | changeMessage() {
17 | this.message = 'Will it work in Vue 3?';
18 | },
19 | },
20 | });
21 |
--------------------------------------------------------------------------------
/composition-api/README.md:
--------------------------------------------------------------------------------
1 | # composition-api
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 |
--------------------------------------------------------------------------------
/teleport-fragments/README.md:
--------------------------------------------------------------------------------
1 | # teleport-fragments
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 |
--------------------------------------------------------------------------------
/basic-app-v2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A Basic Vue App
7 |
8 |
9 |
10 |
{{ message }}
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/basic-app-v3/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A Basic Vue App
7 |
8 |
9 |
10 |
{{ message }}
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/composition-api/src/components/GoalsList.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
15 |
16 |
--------------------------------------------------------------------------------
/router-v2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import VueRouter from 'vue-router';
3 |
4 | import App from './App.vue';
5 | import WelcomeScreen from './pages/WelcomeScreen.vue';
6 | import UsersList from './pages/UsersList.vue';
7 |
8 | Vue.use(VueRouter);
9 |
10 | new Vue({
11 | router: new VueRouter({
12 | mode: 'history',
13 | routes: [
14 | { path: '/', component: WelcomeScreen },
15 | { path: '/users', component: UsersList },
16 | ],
17 | }),
18 | render: (h) => h(App),
19 | }).$mount('#app');
20 |
--------------------------------------------------------------------------------
/vuex-v2/src/components/UserList.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
18 |
19 |
--------------------------------------------------------------------------------
/vuex-v3/src/components/UserList.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
18 |
19 |
--------------------------------------------------------------------------------
/transitions-v2/styles.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-family: sans-serif;
3 | }
4 |
5 | body {
6 | text-align: center;
7 | margin: 5rem;
8 | }
9 |
10 | .box {
11 | margin: 3rem auto;
12 | max-width: 40rem;
13 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
14 | padding: 2rem;
15 | }
16 |
17 | .box-fade-enter,
18 | .box-fade-leave-to {
19 | opacity: 0;
20 | transform: translateY(-30px);
21 | }
22 |
23 | .box-fade-enter-active,
24 | .box-fade-leave-active {
25 | transition: all 0.3s ease;
26 | }
27 |
28 | .box-fade-enter-to,
29 | .box-fade-leave {
30 | opacity: 1;
31 | transform: translateY(0);
32 | }
33 |
--------------------------------------------------------------------------------
/transitions-v3/styles.css:
--------------------------------------------------------------------------------
1 | html {
2 | font-family: sans-serif;
3 | }
4 |
5 | body {
6 | text-align: center;
7 | margin: 5rem;
8 | }
9 |
10 | .box {
11 | margin: 3rem auto;
12 | max-width: 40rem;
13 | box-shadow: 0 2px 8px rgba(0, 0, 0, 0.26);
14 | padding: 2rem;
15 | }
16 |
17 | .box-fade-enter,
18 | .box-fade-leave-to {
19 | opacity: 0;
20 | transform: translateY(-30px);
21 | }
22 |
23 | .box-fade-enter-active,
24 | .box-fade-leave-active {
25 | transition: all 0.3s ease;
26 | }
27 |
28 | .box-fade-enter-to,
29 | .box-fade-leave {
30 | opacity: 1;
31 | transform: translateY(0);
32 | }
33 |
--------------------------------------------------------------------------------
/transitions-v2/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A Basic Vue App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
I'm sometimes visible!
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/transitions-v3/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | A Basic Vue App
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
I'm sometimes visible!
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/router-v2/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/router-v3/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/vuex-v2/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/vuex-v3/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/composition-api/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/teleport-fragments/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | <%= htmlWebpackPlugin.options.title %>
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/vuex-v2/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
19 |
20 |
42 |
--------------------------------------------------------------------------------
/vuex-v3/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
19 |
20 |
42 |
--------------------------------------------------------------------------------
/vuex-v2/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue';
2 | import Vuex from 'vuex';
3 |
4 | import App from './App.vue';
5 |
6 | Vue.use(Vuex);
7 |
8 | const store = new Vuex.Store({
9 | state() {
10 | return {
11 | users: [],
12 | };
13 | },
14 | mutations: {
15 | addUser(state, payload) {
16 | const newUser = {
17 | id: new Date().toISOString(),
18 | name: payload.name,
19 | };
20 | state.users.push(newUser);
21 | },
22 | },
23 | actions: {
24 | addUser(context, payload) {
25 | context.commit('addUser', payload);
26 | },
27 | },
28 | getters: {
29 | users(state) {
30 | return state.users;
31 | },
32 | },
33 | });
34 |
35 | new Vue({
36 | store: store,
37 | render: (h) => h(App),
38 | }).$mount('#app');
39 |
--------------------------------------------------------------------------------
/composition-api/src/components/CourseGoals.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/composition-api/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
52 |
--------------------------------------------------------------------------------
/teleport-fragments/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
14 |
15 |
52 |
--------------------------------------------------------------------------------
/router-v2/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
19 |
20 |
58 |
--------------------------------------------------------------------------------
/router-v3/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
19 |
20 |
58 |
--------------------------------------------------------------------------------
/composition-api/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "composition-api",
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.6.5",
12 | "vue": "^3.0.0-0"
13 | },
14 | "devDependencies": {
15 | "@vue/cli-plugin-babel": "~4.5.0",
16 | "@vue/cli-plugin-eslint": "~4.5.0",
17 | "@vue/cli-service": "~4.5.0",
18 | "@vue/compiler-sfc": "^3.0.0-0",
19 | "babel-eslint": "^10.1.0",
20 | "eslint": "^6.7.2",
21 | "eslint-plugin-vue": "^7.0.0-0"
22 | },
23 | "eslintConfig": {
24 | "root": true,
25 | "env": {
26 | "node": true
27 | },
28 | "extends": [
29 | "plugin:vue/vue3-essential",
30 | "eslint:recommended"
31 | ],
32 | "parserOptions": {
33 | "parser": "babel-eslint"
34 | },
35 | "rules": {}
36 | },
37 | "browserslist": [
38 | "> 1%",
39 | "last 2 versions",
40 | "not dead"
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/router-v2/src/components/TheHeader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/router-v3/src/components/TheHeader.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/teleport-fragments/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "teleport-fragments",
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.6.5",
12 | "vue": "^3.0.0-0"
13 | },
14 | "devDependencies": {
15 | "@vue/cli-plugin-babel": "~4.5.0",
16 | "@vue/cli-plugin-eslint": "~4.5.0",
17 | "@vue/cli-service": "~4.5.0",
18 | "@vue/compiler-sfc": "^3.0.0-0",
19 | "babel-eslint": "^10.1.0",
20 | "eslint": "^6.7.2",
21 | "eslint-plugin-vue": "^7.0.0-0"
22 | },
23 | "eslintConfig": {
24 | "root": true,
25 | "env": {
26 | "node": true
27 | },
28 | "extends": [
29 | "plugin:vue/vue3-essential",
30 | "eslint:recommended"
31 | ],
32 | "parserOptions": {
33 | "parser": "babel-eslint"
34 | },
35 | "rules": {}
36 | },
37 | "browserslist": [
38 | "> 1%",
39 | "last 2 versions",
40 | "not dead"
41 | ]
42 | }
43 |
--------------------------------------------------------------------------------
/vuex-v2/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuex-v2",
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.6.5",
12 | "vue": "^2.6.11",
13 | "vuex": "^3.5.1"
14 | },
15 | "devDependencies": {
16 | "@vue/cli-plugin-babel": "~4.5.0",
17 | "@vue/cli-plugin-eslint": "~4.5.0",
18 | "@vue/cli-service": "~4.5.0",
19 | "babel-eslint": "^10.1.0",
20 | "eslint": "^6.7.2",
21 | "eslint-plugin-vue": "^6.2.2",
22 | "vue-template-compiler": "^2.6.11"
23 | },
24 | "eslintConfig": {
25 | "root": true,
26 | "env": {
27 | "node": true
28 | },
29 | "extends": [
30 | "plugin:vue/essential",
31 | "eslint:recommended"
32 | ],
33 | "parserOptions": {
34 | "parser": "babel-eslint"
35 | },
36 | "rules": {}
37 | },
38 | "browserslist": [
39 | "> 1%",
40 | "last 2 versions",
41 | "not dead"
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/router-v2/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "router-v2",
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.6.5",
12 | "vue": "^2.6.11",
13 | "vue-router": "^3.4.3"
14 | },
15 | "devDependencies": {
16 | "@vue/cli-plugin-babel": "~4.5.0",
17 | "@vue/cli-plugin-eslint": "~4.5.0",
18 | "@vue/cli-service": "~4.5.0",
19 | "babel-eslint": "^10.1.0",
20 | "eslint": "^6.7.2",
21 | "eslint-plugin-vue": "^6.2.2",
22 | "vue-template-compiler": "^2.6.11"
23 | },
24 | "eslintConfig": {
25 | "root": true,
26 | "env": {
27 | "node": true
28 | },
29 | "extends": [
30 | "plugin:vue/essential",
31 | "eslint:recommended"
32 | ],
33 | "parserOptions": {
34 | "parser": "babel-eslint"
35 | },
36 | "rules": {}
37 | },
38 | "browserslist": [
39 | "> 1%",
40 | "last 2 versions",
41 | "not dead"
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/vuex-v3/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vuex-v3",
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.6.5",
12 | "vue": "^3.0.0-0",
13 | "vuex": "^4.0.0-beta.4"
14 | },
15 | "devDependencies": {
16 | "@vue/cli-plugin-babel": "~4.5.0",
17 | "@vue/cli-plugin-eslint": "~4.5.0",
18 | "@vue/cli-service": "~4.5.0",
19 | "@vue/compiler-sfc": "^3.0.0-0",
20 | "babel-eslint": "^10.1.0",
21 | "eslint": "^6.7.2",
22 | "eslint-plugin-vue": "^7.0.0-0"
23 | },
24 | "eslintConfig": {
25 | "root": true,
26 | "env": {
27 | "node": true
28 | },
29 | "extends": [
30 | "plugin:vue/vue3-essential",
31 | "eslint:recommended"
32 | ],
33 | "parserOptions": {
34 | "parser": "babel-eslint"
35 | },
36 | "rules": {}
37 | },
38 | "browserslist": [
39 | "> 1%",
40 | "last 2 versions",
41 | "not dead"
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/router-v3/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "router-v3",
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.6.5",
12 | "vue": "^3.0.0-0",
13 | "vue-router": "^4.0.0-beta.7"
14 | },
15 | "devDependencies": {
16 | "@vue/cli-plugin-babel": "~4.5.0",
17 | "@vue/cli-plugin-eslint": "~4.5.0",
18 | "@vue/cli-service": "~4.5.0",
19 | "@vue/compiler-sfc": "^3.0.0-0",
20 | "babel-eslint": "^10.1.0",
21 | "eslint": "^6.7.2",
22 | "eslint-plugin-vue": "^7.0.0-0"
23 | },
24 | "eslintConfig": {
25 | "root": true,
26 | "env": {
27 | "node": true
28 | },
29 | "extends": [
30 | "plugin:vue/vue3-essential",
31 | "eslint:recommended"
32 | ],
33 | "parserOptions": {
34 | "parser": "babel-eslint"
35 | },
36 | "rules": {}
37 | },
38 | "browserslist": [
39 | "> 1%",
40 | "last 2 versions",
41 | "not dead"
42 | ]
43 | }
44 |
--------------------------------------------------------------------------------
/teleport-fragments/src/components/AdminMode.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ modeName }}
5 |
6 |
7 |
8 |
9 |
36 |
37 |
--------------------------------------------------------------------------------
/teleport-fragments/src/components/AdminCenter.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Active Modes
4 |
12 |
13 |
14 |
15 |
43 |
44 |
--------------------------------------------------------------------------------
/vuex-v2/src/components/UserRegistration.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
28 |
29 |
--------------------------------------------------------------------------------
/vuex-v3/src/components/UserRegistration.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
28 |
29 |
--------------------------------------------------------------------------------
/composition-api/src/components/AddGoal.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
14 |
43 |
44 |
--------------------------------------------------------------------------------
/teleport-fragments/src/components/ConfirmDialog.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
16 |
17 |
18 |
19 |
32 |
33 |
--------------------------------------------------------------------------------