사용자 정의 글로벌 Nuxt 플러그인(토스트)을 만드는 방법은 무엇입니까?
10484 단어 vuecsstutorialjavascript
전제 조건:
이제 npx를 사용하여 Nuxt 앱을 만드는 것으로 시작해 보겠습니다.
npx create-nuxt-app nuxt-toast
단계를 따라 이동하고 이 튜토리얼에서 사용할 UI 프레임워크 옵션에서 Vuetify.js를 선택합니다. 그러나 Vuetify를 사용하지 않으려면 원하는 UI 프레임워크를 변경하거나 UI 없이도 변경할 수 있습니다. 뼈대.
Vuex를 사용하기 위해 store 폴더에
snackbar.js라는 파일을 만들고 다음과 같이 작성합니다.export const state = () => ({
content: "",
color: ""
});
export const mutations = {
showMessage(state, payload) {
state.content = payload.content;
state.color = payload.color;
}
};
토스트에 대한 내용과 색상 값이 있는 상태 함수와 상태 값을 페이로드 값으로 설정하는 메시지 표시 함수가 포함된 돌연변이 개체를 내보냅니다.
그런 다음 플러그인 폴더에
notifier.js라는 파일을 만들고 다음을 작성합니다.export default ({ app, store }, inject) => {
inject("notifier", {
showMessage({ content = "", color = "" }) {
store.commit("snackbar/showMessage", { content, color });
}
});
};
여기에서는 vuex store를 사용하여 상태 값을 원하는 콘텐츠와 색상으로 설정하는 페이로드를 설정하기 때문에 두 개의 매개변수인 app 및 store 객체를 전달하는 플러그인의 기능을 내보내고 있습니다.
this.$notifier 와 같이 호출되는 전역 nuxt 함수가 되도록 알리미 함수를 주입합니다.그런 다음 구성 요소 폴더에
Snackbar.vue라는 파일을 만들고 vue 템플릿을 작성합니다.<template>
<v-snackbar v-model="show" :color="color">
{{ message }}
<template v-slot:action="{ attrs }">
<v-btn color="white" text v-bind="attrs" @click="show = false">
Close
</v-btn>
</template>
</v-snackbar>
</template>
보시다시피 우리는 축배를 위해 vuetify의 스낵바 구성 요소를 사용했습니다. vuetify를 사용하지 않으려면 원하는 대로 사용자 지정 구성 요소를 만듭니다.
그런 다음 템플릿 아래에 스크립트 태그를 작성합니다.
<script>
export default {
data() {
return {
show: false,
message: "",
color: ""
};
},
created() {
this.$store.subscribe((mutation, state) => {
if (mutation.type === "snackbar/showMessage") {
this.message = state.snackbar.content;
this.color = state.snackbar.color;
this.show = true;
}
});
}
};
</script>
여기에서 데이터(showSnackbar, 메시지, 색상)를 정의하고 있습니다.
created() 후크에서 this.$store.subscribe 함수를 사용하여 돌연변이 및 상태 매개변수를 얻을 때 돌연변이 저장을 구독하므로 돌연변이 유형이 동일한지 확인합니다. "snackbar/showMessage"로 (snackbar.js 파일 및 우리 가게의 showMessage 기능).( for more info about store subscribe )
그런 다음 다음과 같이 스낵바 구성 요소를
default.vue 레이아웃 파일로 가져옵니다.<template>
<v-app>
<v-main>
<v-container>
<nuxt />
</v-container>
</v-main>
<Snackbar></Snackbar>
</v-app>
</template>
<script>
import Snackbar from "~/components/Snackbar";
export default {
components: {
Snackbar
}
};
</script>
마지막으로 플러그인을 작동시키기 위해 마지막으로 하는 일은 다음과 같이
nuxt.config.js 파일에 플러그인을 정의하는 것입니다. plugins: ["~/plugins/notifier.js"],
따라서
index.vue 후크의 mounted()에서 플러그인을 사용해 보겠습니다.mounted() {
this.$notifier.showMessage({
content: "YAY Our Plugin worked Successfully!",
color: "success"
});
}
HTTP 요청 응답에 사용하거나 원하는 대로 사용할 수 있습니다.
기사가 도움이 되었기를 바랍니다!
트위터:
Reference
이 문제에 관하여(사용자 정의 글로벌 Nuxt 플러그인(토스트)을 만드는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/amrelmohamady/how-to-create-a-custom-global-nuxt-plugin-toast-1976텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)