Skip to content

Instantly share code, notes, and snippets.

import { onBeforeMount, onMounted } from "vue";
export default {
setup(){
onBeforeMount(() => {
console.log("Before mount");
});
onMounted(() => {
console.log("Mounted");
});
<template>
<div>{{JSON.stringify(dataLocale)}}</div>
</template>
<script>
import locale from "@/composables/locale";
export default {
async setup() {
const { getLocales } = await locale();
const dataLocale = await getLocales();
import Axios from "axios";
export default function locale() {
async function getLocales() {
return await Axios.get(
"...url..."
).then((response) => {
return response.data;
});
}
<template>
<Suspense>
<template #default>
<Locale />
</template>
<template #fallback>Loading...</template>
</Suspense>
</template>
<script>
import { ref } from "vue";
export default function download() {
const filePath = ref(null);
function downloadBlob(){
// any code here
}
function downloadJSON(){
// any code here
}
return { filePath, downloadBlob, downloadJSON}
<template>
<!-- template code -->
</template>
<script>
import download from "@/use/download";
import upload from "@/use/upload";
export default {
setup(){
return { ...download(), ...upload() }
}
import { ref } from "@vue/composition-api";
export default function(fn) {
const result = ref(null);
const loading = ref(false);
const error = ref(null);
const createPromise = async (...args) => {
loading.value = true;
try {
result.value = await fn(...args);
} catch (err) {
<template>
<div>
<input type="text" v-model="name" />
</div>
</template>
<script>
export default {
data(){
return {
<template>
<div>
<input type="text" v-model="name" />
</div>
</template>
<script>
import { ref, watch } from "vue";
export default {
setup() {
<template>
<div>
<input type="text" v-model="name" />
</div>
</template>
<script>
import { ref, watchEffect } from "vue";
export default {
setup() {