当前位置: 首页 > news >正文

开发网站代码量嘉兴网站制作套餐

开发网站代码量,嘉兴网站制作套餐,网站开发语言为,wordpress首页文件夹在 Vue Router 中#xff0c;你可以通过过渡动效#xff08;Transition Effects#xff09;为路由切换添加平滑的过渡效果#xff0c;从而提升用户体验。过渡动效可以使用 Vue 的 transition 组件和 CSS 过渡来实现。 基本使用#xff1a; 对导航使用动画#…在 Vue Router 中你可以通过过渡动效Transition Effects为路由切换添加平滑的过渡效果从而提升用户体验。过渡动效可以使用 Vue 的 transition 组件和 CSS 过渡来实现。 基本使用 对导航使用动画需要 v-slot API router-view #default{route,Component}transition :enter-active-classanimate__animated ${route.meta.transition}component :isComponent/component/transition/router-view以上会对所有的路由使用相同的过渡。如果你想让每个路由的组件有不同的过渡可以将元信息和动态的 name 结合在一起放在transition 上 declare module vue-router{interface RouteMeta {title:string,transition:string,} }const router createRouter({history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: /,component: () import(/views/Login.vue),meta:{title:登录页面,transition:animate__fadeInUp,}},{path: /index,component: () import(/views/Index.vue),meta:{title:首页,transition:animate__bounceIn,}}] })用法总结在路由切换时添加过渡动效 首先你需要在你的 Vue 项目中导入 transition 组件。 在需要添加过渡动效的地方通常是路由的 router-view使用 transition 包裹你的内容。 为 transition 组件添加一个 CSS 类以便在路由切换时触发过渡效果。 实例演示以下实例会用到 Animation.css 库 index.ts import { createRouter, createWebHistory } from vue-routerdeclare module vue-router {interface RouteMeta {title: string,transition: string} }export const router createRouter({// import.meta.env.BASE_URL 应用的基本 URL。基本 URL 是指在你的应用部署到某个域名或子路径时URL 的起始部分。例如如果你的应用部署在 https://example.com/myapp/ 这个路径下那么 import.meta.env.BASE_URL 就会是 /myapp/。history: createWebHistory(import.meta.env.BASE_URL),routes: [{path: /,component: () import(/views/Login.vue),meta: {title: 登录页,transition: animate__fadeIn}},{path: /index,component: () import(/views/Index.vue),meta: {title: 首页,transition: animate__bounceOut}},], })loadingBar.vue templatediv classwrapsdiv refbar classbar/div/div /templatescript setup langts import { ref, onMounted } from vue let speed refnumber(1) let bar refHTMLElement() let timer refnumber(0) const startLoading () {speed.value 1let dom bar.value as HTMLElementtimer.value window.requestAnimationFrame(function fn() {if (speed.value 90) {speed.value 1;dom.style.width speed.value %timer.value window.requestAnimationFrame(fn)} else {speed.value 1window.cancelAnimationFrame(timer.value)}}) } const endLoading () {let dom bar.value as HTMLElementsetTimeout(() {window.requestAnimationFrame(() {speed.value 100dom.style.width speed.value %})}, 500)}defineExpose({ startLoading, endLoading }) /scriptstyle scoped langless .wraps {width: 100%;position: fixed;height: 10px;top: 0;.bar {height: inherit;width: 0;background-color: #409eff;} } /styleIndex.vue templateh1我进来啦/h1 /templatescript setup langts/scriptstyle scoped/styleLogin.vue templatediv classloginel-card classbox-cardel-form refform :rulesrules :modelformInline classdemo-form-inlineel-form-item propuser label账号el-input v-modelformInline.user placeholder请输入账号 //el-form-itemel-form-item proppassword label密码el-input v-modelformInline.password placeholder请输入密码 typepassword/el-input/el-form-itemel-form-itemel-button typeprimary clickonSubmit登录/el-button/el-form-item/el-form/el-card/div /templatescript setup langts import { reactive, ref } from vue import { useRouter } from vue-router import type { FormItemRule, FormInstance } from element-plus; import { ElMessage } from element-plusconst router useRouter() type Form {user: string,password: string } type Rules {[k in keyof Form]?: ArrayFormItemRule } const formInline reactiveForm({user: ,password: , }) const form refFormInstance() const rules reactive({user: [{required: true,message: 请输入账号,type: string,}],password: [{required: true,message: 请输入密码,type: string,}] })const onSubmit () {console.log(submit!, form.value)form.value?.validate((validate){if (validate) {router.push(/index)localStorage.setItem(token, 1)} else {ElMessage.error(账号或密码错误)}})} /scriptstyle scoped langless .login {height: 100%;display: flex;justify-content: center;align-items: center; } /styleApp.vue templaterouter-view #default{ Component, route }transition :enter-active-classanimate__animated ${route.meta.transition}component :isComponent/component/transition/router-view /templatescript setup langts import animate.css/scriptstyle /* 注意 style 标签 别加 scoped 不然设置宽高不生效 */ * {margin: 0;padding: 0; } html, body, #app {height: 100%;overflow: hidden; } /stylemain.ts import { createApp,createVNode,render } from vue import App from ./App.vue import {router} from ./router // import 引入 import ElementPlus from element-plus import element-plus/dist/index.css import loadingBar from ./components/loadingBar.vueconst Vnode createVNode(loadingBar) render(Vnode,document.body) const app createApp(App) app.use(router) // use 注入 ElementPlus 插件 app.use(ElementPlus)const whiteList [/]// beforeEach 可以定义不止一个vue会收集所有定义的路由钩子所以next的作用不应该是跳转而是使步骤进行到下一个你定义的钩子 router.beforeEach((to, from, next) {document.title to.meta.titleVnode.component?.exposed?.startLoading()// token每次都要跟后端校验一下是否过期if(whiteList.includes(to.path) || localStorage.getItem(token)){next()}else{next(/)} })router.afterEach((to, from) {Vnode.component?.exposed?.endLoading() }) app.mount(#app)可以发现在切换到首页或者登录页都有过渡动效。
http://www.zqtcl.cn/news/637654/

相关文章:

  • 开网站建设网站如何做excel预览
  • p2p网站建设方案电商企业有哪些
  • 建设农场网站天元建设集团有限公司法定代表人
  • 论坛网站建设价格百度广告官网
  • 网站开发有哪些语言ps做登录网站
  • 网站怎么做百度关键字搜索国外服务器做网站不能访问
  • 如何选择品牌网站建设做网站容易吧
  • 广州建网站比较有名的公司提升学历英语翻译
  • php网站开发视频教程厦门网站建设公司首选乐振
  • 网站推广项目微信小程序登陆入口
  • 建设部监理协会网站微信公众平台开发微网站
  • 莆田cms建站模板现在可以做网站么
  • windows 建网站湖北省最新消息今天
  • 手机商场网站制作在线看网站源码
  • 云南建设厅网站房地产开发资质做哪一类网站能赚钱
  • 佛山优化网站关键词创作者服务平台
  • python做网站多少钱超级商城系统
  • 网站开发pc端和手机端长沙专业个人做网站哪家好
  • 永州网站建设收费标准天长网站开发
  • 做网站分辨率多少钱装修公司10强排名
  • 营销网站建设818gx在南宁做家教兼职的网站
  • 做杂志模板下载网站网站开发产品经理招聘
  • 深圳网站创建公司小程序代理怎么样
  • 所以免费爱做网站营销网站优化推广
  • 莆田网站制作设计东莞营销专业网站建设
  • joomla建站教程北京做网站ezhixi
  • 自己可以做拼单网站吗建设企业网站有哪些
  • 张掖北京网站建设新闻事件
  • 济南网站建设(力选聚搜网络)wordpress文章中写代码
  • 网站后台忘记密码买购网十大品牌网