Vue3使用

创建项目

npm create vue@latest

Vue3 拖拽组件

VueDraggablePlus | 支持 Vue2 和 Vue3 的拖拽组件 (vue-draggable-plus.pages.dev)

Vue3 Markdown组件

mavon-editor - npm (npmjs.com)

介绍 | v-md-editor (code-farmer-i.github.io)

transition组件使用

transition组件包裹的标签需要加上key属性

<script setup>
import {ref} from "vue";

let k = ref(parseInt(new Date().toString()));
</script>

<template>
<div>
<router-view v-slot="{ Component }">
<transition name="fade" mode="out-in">
<component :is="Component"></component>
</transition>
</router-view>
</div>
</template>

<style scoped>
/* 淡入淡出效果 */
.fade-enter-active, .fade-leave-active {
transition: opacity 0.4s;
}

.fade-enter, .fade-leave-to {
opacity: 0;
}

/* 滑动效果 */
.slide-enter-active, .slide-leave-active {
transition: transform 0.5s;
}

.slide-enter {
transform: translateX(100%);
}

.slide-leave-to {
transform: translateX(-100%);
}
</style>

特效推荐

/* 淡入淡出效果 name:fade */
.fade-enter-active, .fade-leave-active {
transition: opacity 0.4s ease;
}

.fade-enter, .fade-leave-to {
opacity: 0;
}

/* 幻灯片效果 name:slide */
.slide-enter-active,
.slide-leave-active {
transition: all 0.75s ease-out;
}

.slide-enter-to {
position: absolute;
right: 0;
}

.slide-enter-from {
position: absolute;
right: -100%;
}

.slide-leave-to {
position: absolute;
left: -100%;
}

.slide-leave-from {
position: absolute;
left: 0;
}

/* 缩放效果 name:scale */
.scale-enter-active,
.scale-leave-active {
transition: all 0.5s ease;
}

.scale-enter-from,
.scale-leave-to {
opacity: 0;
transform: scale(0.9);
}

/* 组件过度 name:scale-slide */
.scale-slide-enter-active,
.scale-slide-leave-active {
position: absolute;
transition: all 0.85s ease;
}

.scale-slide-enter-from {
left: -100%;
}

.scale-slide-enter-to {
left: 0%;
}

.scale-slide-leave-from {
transform: scale(1);
}

.scale-slide-leave-to {
transform: scale(0.8);
}