example:
router:
const routes = [
{
path: '/settings',
name: 'Settings',
component: () => import('../pages/SettingsPage.vue')
},
{
path: '/empty',
name: 'empty',
component: () => import('../pages/EmptyPage.vue')
}
]
empty:
<template>
<base-layout back-link="/home">
<ion-list>
<ion-item lines="full">
<ion-icon size="large" slot="start"></ion-icon>
<ion-label>Dark Mode</ion-label>
<ion-toggle slot="end"></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Tryb pobierania zdjęć</ion-label>
<ion-select placeholder="Select" ok-text="OK" cancel-text="Cancel">
<ion-select-option value="3">Mode 3</ion-select-option>
<ion-select-option value="2">Mode 2</ion-select-option>
<ion-select-option value="1">Mode 1</ion-select-option>
<ion-select-option value="0">Mode 0</ion-select-option>
</ion-select>
</ion-item>
</ion-list>
</base-layout>
</template>
<script>
import {
IonToggle,
IonLabel,
IonItem,
IonList,
IonSelect,
IonSelectOption,
IonIcon,
} from '@ionic/vue';
export default {
components: {
IonToggle,
IonLabel,
IonItem,
IonList,
IonSelect,
IonSelectOption,
IonIcon,
},
created() {
console.log("Empty created")
},
mounted() {
console.log("Empty mounted")
},
updated(){
console.log("Empty updated")
},
beforeUpdate(){
console.log("Empty beforeUpdate")
},
beforeUnmount(){
console.log("Empty Destroyed")
}
}
</script>
settings:
<template>
<base-layout page-title="Ustawienia" back-link="/home">
<ion-list>
<ion-item lines="full">
<ion-icon size="large" slot="start" :icon="moonOutline"></ion-icon>
<ion-label>Tryb ciemny</ion-label>
<ion-toggle slot="end" @ionChange="switchTheme($event)" :checked="darkMode"></ion-toggle>
</ion-item>
<ion-item>
<ion-label>Tryb pobierania zdjęć</ion-label>
<ion-select @ionChange="switchImgMode($event)" placeholder="Wybierz" :value="imageDownloadMode" ok-text="OK" cancel-text="Anuluj">
<ion-select-option value="3">Wszystkie</ion-select-option>
<ion-select-option value="2">Tylko jedno</ion-select-option>
<ion-select-option value="1">Tylko miniaturka</ion-select-option>
<ion-select-option value="0">Wyłączone</ion-select-option>
</ion-select>
</ion-item>
</ion-list>
</base-layout>
</template>
<script>
import {
IonToggle,
IonLabel,
IonItem,
IonList,
IonSelect,
IonSelectOption,
IonIcon,
} from '@ionic/vue';
import { moonOutline } from 'ionicons/icons';
export default {
components: {
IonToggle,
IonLabel,
IonItem,
IonList,
IonSelect,
IonSelectOption,
IonIcon,
},
data() {
return {
moonOutline
};
},
methods: {
switchTheme(event) {
if (event.detail.checked) {
document.body.setAttribute('color-theme', 'dark');
this.$store.dispatch('config/setDarkMode', { darkMode: true, db: this.$db });
} else {
document.body.setAttribute('color-theme', 'light');
this.$store.dispatch('config/setDarkMode', { darkMode: false, db: this.$db });
}
},
switchImgMode(event) {
this.$store.dispatch('config/setImageDownloadMode', { imgDwnMode: event.detail.value, db: this.$db });
},
},
computed:{
darkMode(){
return this.$store.getters['config/darkMode'];
},
imageDownloadMode(){
return this.$store.getters['config/imageDownloadMode'].toString();
}
},
created() {
console.log("Settings created")
},
mounted() {
console.log("Settings mounted")
},
updated(){
console.log("Settings updated")
},
beforeUpdate(){
console.log("Settings beforeUpdate")
},
beforeUnmount(){
console.log("Settings Destroyed")
}
};
</script>
fragment of Home
<ion-card router-link="/empty">
<ion-icon :icon="cloudOutline"></ion-icon>
<h2>Online</h2>
<ion-ripple-effect />
</ion-card>
// and so on
Now see console:
Why I have Empty created
and Empty mounted
in /settings path?