Skip to content

Commit 9d24ff4

Browse files
committed
📦 upgrade to vue3
1 parent 21b9ac5 commit 9d24ff4

File tree

15 files changed

+350
-187
lines changed

15 files changed

+350
-187
lines changed

‎services/frontend/package-lock.json‎

Lines changed: 298 additions & 130 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎services/frontend/package.json‎

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@
1111
"axios": "^1.2.0",
1212
"bootstrap": "^5.1.0",
1313
"core-js": "^3.6.5",
14-
"vue": "^2.6.11",
15-
"vue-router": "^3.2.0",
16-
"vuex": "^3.6.2",
17-
"vuex-persistedstate": "^4.0.0"
14+
"vue": "^3.2.45",
15+
"vue-router": "^4.1.6",
16+
"vuex": "^4.1.0"
1817
},
1918
"devDependencies": {
2019
"@babel/eslint-parser": "^7.19.1",
@@ -23,8 +22,7 @@
2322
"@vue/cli-plugin-router": "^5.0.8",
2423
"@vue/cli-service": "^5.0.8",
2524
"eslint": "^8.28.0",
26-
"eslint-plugin-vue": "^9.8.0",
27-
"vue-template-compiler": "^2.6.11"
25+
"eslint-plugin-vue": "^9.8.0"
2826
},
2927
"eslintConfig": {
3028
"root": true,

‎services/frontend/src/App.vue‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,13 @@
88
</template>
99

1010
<script>
11-
// @ is an alias to /src
12-
import NavBar from '@/components/NavBar.vue'
13-
export default {
11+
import { defineComponent } from 'vue';
12+
import NavBar from '@/components/NavBar.vue';
13+
export default defineComponent({
1414
components: {
1515
NavBar
1616
}
17-
}
17+
});
1818
</script>
1919

2020
<style>

‎services/frontend/src/components/HelloWorld.vue‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,10 @@
55
</template>
66

77
<script>
8+
import { defineComponent } from 'vue';
89
import axios from 'axios';
910
10-
export default {
11+
export default defineComponent({
1112
name: 'Ping',
1213
data() {
1314
return {
@@ -28,5 +29,5 @@ export default {
2829
created() {
2930
this.getMessage();
3031
},
31-
};
32+
});
3233
</script>

‎services/frontend/src/components/NavBar.vue‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@
3939
</template>
4040

4141
<script>
42-
export default {
42+
import { defineComponent } from 'vue';
43+
44+
export default defineComponent({
4345
name: 'NavBar',
4446
computed: {
4547
isLoggedIn: function() {
@@ -52,7 +54,7 @@ export default {
5254
this.$router.push('/login');
5355
}
5456
},
55-
}
57+
});
5658
</script>
5759

5860
<style scoped>
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import 'bootstrap/dist/css/bootstrap.css';
2+
import { createApp } from "vue";
23
import axios from 'axios';
3-
import Vue from 'vue';
44

55
import App from './App.vue';
66
import router from './router';
77
import store from './store';
88

9+
const app = createApp(App);
910

1011
axios.defaults.withCredentials = true;
1112
axios.defaults.baseURL = 'http://localhost:5000/'; // the FastAPI backend
1213

13-
Vue.config.productionTip = false;
14-
1514
axios.interceptors.response.use(undefined, function (error) {
1615
if (error) {
1716
const originalRequest = error.config;
@@ -23,8 +22,6 @@ axios.interceptors.response.use(undefined, function (error) {
2322
}
2423
});
2524

26-
new Vue({
27-
router,
28-
store,
29-
render: h => h(App)
30-
}).$mount('#app');
25+
app.use(router);
26+
app.use(store);
27+
app.mount("#app");

‎services/frontend/src/router/index.js‎

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import Vue from 'vue';
2-
import VueRouter from 'vue-router';
1+
import { createRouter, createWebHistory } from 'vue-router';
32

43
import store from '@/store';
54

@@ -11,8 +10,6 @@ import Note from '@/views/Note';
1110
import Profile from '@/views/Profile';
1211
import Register from '@/views/Register';
1312

14-
Vue.use(VueRouter);
15-
1613
const routes = [
1714
{
1815
path: '/',
@@ -33,37 +30,36 @@ const routes = [
3330
path: '/dashboard',
3431
name: 'Dashboard',
3532
component: Dashboard,
36-
meta: {requiresAuth: true},
33+
meta: { requiresAuth: true },
3734
},
3835
{
3936
path: '/profile',
4037
name: 'Profile',
4138
component: Profile,
42-
meta: {requiresAuth: true},
39+
meta: { requiresAuth: true },
4340
},
4441
{
4542
path: '/note/:id',
4643
name: 'Note',
4744
component: Note,
48-
meta: {requiresAuth: true},
45+
meta: { requiresAuth: true },
4946
props: true,
5047
},
5148
{
5249
path: '/editnote/:id',
5350
name: 'EditNote',
5451
component: EditNote,
55-
meta: {requiresAuth: true},
52+
meta: { requiresAuth: true },
5653
props: true,
5754
}
5855
]
5956

60-
const router = new VueRouter({
61-
mode: 'history',
62-
base: process.env.BASE_URL,
57+
const router = createRouter({
58+
history: createWebHistory(process.env.BASE_URL),
6359
routes,
6460
});
6561

66-
router.beforeEach((to, from, next) => {
62+
router.beforeEach((to, _, next) => {
6763
if (to.matched.some(record => record.meta.requiresAuth)) {
6864
if (store.getters.isAuthenticated) {
6965
next();
Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
1-
import createPersistedState from "vuex-persistedstate";
2-
import Vue from 'vue';
3-
import Vuex from 'vuex';
1+
import { createStore } from "vuex";
42

53
import notes from './modules/notes';
64
import users from './modules/users';
75

8-
9-
Vue.use(Vuex);
10-
11-
export default new Vuex.Store({
6+
export default createStore({
127
modules: {
138
notes,
149
users,
15-
},
16-
plugins: [createPersistedState()]
10+
}
1711
});

‎services/frontend/src/views/Dashboard.vue‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@
5050
</template>
5151

5252
<script>
53+
import { defineComponent } from 'vue';
5354
import { mapGetters, mapActions } from 'vuex';
54-
export default {
55+
export default defineComponent({
5556
name: 'Dashboard',
5657
data() {
5758
return {
@@ -73,5 +74,5 @@ export default {
7374
await this.createNote(this.form);
7475
},
7576
},
76-
};
77+
});
7778
</script>

‎services/frontend/src/views/EditNote.vue‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
</template>
2323

2424
<script>
25+
import { defineComponent } from 'vue';
2526
import { mapGetters, mapActions } from 'vuex';
26-
export default {
27+
export default defineComponent({
2728
name: 'EditNote',
2829
props: ['id'],
2930
data() {
@@ -65,5 +66,5 @@ export default {
6566
}
6667
}
6768
},
68-
};
69+
});
6970
</script>

0 commit comments

Comments
 (0)