Vue 패키지 전역 toast 구성 요소 의 전체 인 스 턴 스
6155 단어 vue포장 하 다toast 구성 요소
최근 에 Vue 를 체험 해 보 았 습 니 다.Toast 는 모두 전단 에서 자주 사용 하 는 구성 요소 입 니 다.본 고 는 Vue 가 전체 toast 구성 요 소 를 밀봉 하 는 과정 을 상세 하 게 소개 하 였 습 니 다.다음은 더 이상 말 하지 않 겠 습 니 다.상세 한 소 개 를 해 보 겠 습 니 다.
vue-cli 의 도움 을 빌리다
1.Toast 구성 요소 정의
// components/Toast
<template>
<transition name="fade">
<div v-show="visible">{{message}}</div>
</transition>
</template>
<script>
export default {
data () {
return {
visible: false,
message: ''
}
}
}
</script>
<style scoped>
div {
position: fixed;
top: 30%;
left: 50%;
padding: 5px 20px;
color: #fff;
background-color: #424242;
border-radius: 5px;
text-align: center;
transform: translate(-50%, -50%);
}
/* vue */
.fade-enter-active,
.fade-leave-active {
transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
opacity: 0;
}
</style>
2.main.js 에 설정
import Vue from 'vue'
import App from './App.vue'
import Toast from './components/Toast'
//
const ToastObj = {
install: function (Vue) {
// Vue “ ”
const ToastConstructor = Vue.extend(Toast)
// ,
const instance = new ToastConstructor()
console.log(instance)
// ,
instance.$mount(document.createElement('div'))
document.body.appendChild(instance.$el)
// Vue ,
Vue.prototype.$toast = (msg, duration = 1500) => {
instance.message = msg
instance.visible = true
setTimeout(() => {
instance.visible = false
}, duration)
}
}
}
Vue.use(ToastObj)
Vue.config.productionTip = false
new Vue({
render: h => h(App),
}).$mount('#app')
3.다른 구성 요소 에서 사용
<template>
<div class="hello">
<h1>{{ msg }}</h1>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data: () => {
return {
msg: 'HelloWord'
}
},
mounted () {
// toast
this.$toast(' ')
}
}
</script>
2.vue-cli 의 도움 을 받 지 않 습 니 다.vue-cli 를 통 해 구성 요소 의 가 져 오기 내 보 내기 가 편리 하지만 구축 도 구 를 이용 하지 않 은 상태 에서 다른 방법 을 사용 해 야 합 니 다.
1.toast 구성 요소 등록
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./static/vue/vue.min.js"></script>
</head>
<body>
<div id="app">
<my-button></my-button>
</div>
<div id="toast"></div>
<script>
// toast
const Toast = Vue.component('toast', {
data() {
return {
isShow: false,
message: ' ',
wrapperStyle: {
position: 'fixed',
top: '20%',
left: '50%',
zIndex: 10000,
padding: '6px 12px',
backgroundColor: '#424242',
borderRadius: '5px',
transform: 'translate(-50%, -50%)'
},
textStyle: {
color: '#fff',
fontSize: '14px'
}
}
},
template: `<div v-show="isShow" :style="wrapperStyle">
<span :style="textStyle">{{ message }}</span>
</div>`
})
2.toast 플러그 인 등록
//
const ToastObj = {
install: function (Vue) {
// toast ,
const instance = new Toast()
// DOM
instance.$mount('#toast')
// Vue ,
Vue.prototype.$toast = ({message, duration = 2000} = {}) => {
instance.message = message
instance.isShow = true
setTimeout(() => {
instance.isShow = false
}, duration)
}
}
}
// toast
Vue.use(ToastObj)
3.다른 구성 요소 에서 사용
Vue.component('my-button', {
data() {
return {
wrapperStyle: {
width: '70px',
padding: '20px',
backgroundColor: 'green'
},
textStyle: {
color: '#fff',
fontSize: '16px'
}
}
},
methods: {
handleClick() {
this.$toast({
message: ' '
})
}
},
template: `<div :style="wrapperStyle" @click="handleClick">
<span :style="textStyle"> </span>
</div>`
})
const vm = new Vue({
el: '#app'
})
</script>
</body>
</html>
총결산Vue 패 키 징 전역 toast 구성 요소 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 Vue 패 키 징 전역 toast 구성 요소 내용 은 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.