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

网站设置默认首页小学做试卷的网站

网站设置默认首页,小学做试卷的网站,wordpress 文章去重,为企业做网站还有前途吗本文使用vue3vue-router4来演示,关于vue-router基础不了解的可以先看下这里vue2中vue-router的基本使用 安装命令 //不指定版本默认安装最新稳定版本的 需要指定版本使用 //本文使用的是 4.0.3 版本 npm i vue-router 创建router文件夹,index.js文件…

本文使用vue3+vue-router4来演示,关于vue-router基础不了解的可以先看下这里vue2中vue-router的基本使用

安装命令

//不指定版本默认安装最新稳定版本的 需要指定版本使用 @
//本文使用的是 4.0.3 版本
npm i vue-router 

创建router文件夹,index.js文件。创建对应的组件demo1.vue,demo2.vue,demo3.vue

import { createRouter, createWebHashHistory } from 'vue-router'
//静态引入,初始化的时候会加载所有导入的组件
//eg:  import demo1 from '@/views/demo/demo1.vue';
const routes = [{path:'/demo1',name:'demo1',// 动态加载引入组件 只有访问的时候才会去加载component:()=> import('../views/demo/demo1.vue')},// 动态路由eg :id{path:'/demo2/:id',name:'demo2',component:()=>import('../views/demo/demo2.vue')},{path:'/demo3',name:'demo3',component:()=>import('../views/demo/demo3.vue')},]const router = createRouter({history: createWebHashHistory(),routes
})export default router

main.js,这里我是把demo7作为初始页面了,默认使用根组件App.vue也可以


import App from "../src/views/demo/demo7.vue";
import router from "./router";
const app = createApp(App);
app.use(store).mount("#app");

初始页面demo7

<template><div><div class="box"><button @click="router.push('/')">首页</button><button @click="setToken">设置token</button><button @click="removeToken">清楚token</button><button @click="router.push('/demo1')">跳转demo1</button><button @click="router.push('/demo2/15')">跳转demo2</button><button @click="router.push('/demo3')">跳转demo3</button> </div><router-view></router-view></div>
</template><script setup >
import {useRoute, useRouter } from 'vue-router';
//route用来接收参数
const route=useRoute();
//router用来跳转
const router=useRouter();const setToken=()=>{localStorage.setItem('token','111');
}
const removeToken=()=>{localStorage.removeItem('token')
}</script>

meta属性

在配置路由信息的时候除了path,name,component外可以通过meta属性来设置title,requiresAuth等,这里修改下demo3的路由信息。

 {path:'/demo3',name:'demo3',component:()=>import('../views/demo/demo3.vue'),meta:{//设置标题title:'demo3',//需要权限requiresAuth:true,}},

运行效果,点击demo1,demo2按钮切换不同组件显示,点击demo3的时候会提示登录,这是因为加上了requiresAuth和配置了前置路由beforeEach

meta还有一些属性,这里简单介绍下。

roles:用于指定访问该路由所需的用户角色。只有拥有对应角色的用户才能访问该页面 

keepAlive:用于标记该路由对应的组件是否需要被缓存。结合keep-alive组件可以实现页面缓存功能。

transition:指定该路由页面切换时的动画效果。在路由切换前,可以根据这个属性设置不同的动画类名。

breadcrumb:用于定义该路由在面包屑导航中的显示文本和链接。方便用户在多级页面中了解当前页面的位置。

loading:标记该路由页面是否需要显示加载状态。当页面需要异步加载数据时,可以根据这个属性显示加载动画。

keywords和description:用于设置页面的关键词和描述,有助于搜索引擎优化。

前置路由守卫beforeEach

前置路由守卫是在路由切换之前执行的钩子函数,主要用于在路由跳转前进行一些验证、数据处理或者其他操作,以此来控制路由的访问权限和跳转逻辑。它可以决定是否允许路由跳转,或者在跳转前进行一些额外的处理,确保应用的安全性和正确性。

// 前置路由守卫在路由跳转前执行,可以用于路由鉴权、页面加载前的准备工作等
router.beforeEach((to,from,next)=>{// to可以拿到跳转后的fullpath href  meta,params,path等路由信息console.log('to',to);// from也可以拿到相应路由信息 区别是from是跳转之前的信息console.log('from',from);// next允许跳转// console.log('next',next); if(to.meta.requiresAuth){const token=localStorage.getItem('token');// console.log('token',token);if(token==null || token ==undefined){alert('请登录')}else{// next放行,页面跳转next();}}else{next();}
}) 

点击设置token按钮后,在跳转demo3即可成功跳转。如果清除token则还是会提示请登录



后置路由守卫afterEach

给demo1,demo2添加title

  {path:'/demo1',name:'demo1',// 懒加载引入组件 只有访问的时候才会去加载component:()=> import('../views/demo/demo1.vue'),meta:{title:'demo1'}},// 动态路由eg :id{path:'/demo2/:id',name:'demo2',component:()=>import('../views/demo/demo2.vue'),meta:{title:'demo2'}},

 在页面跳转完成后去修改浏览器的标题 

// 后置路由 在路由跳转后执行,通常用于页面跳转后的一些操作
router.afterEach((to, from) => {// console.log('后置路由守卫,跳转完成');if(to.meta.title){document.title=to.meta.title;}  
});

运行效果

组件内导航守卫onBeforeRouteLeave

离开当前路由则会触发,给demo2添加上

import { onBeforeRouteLeave} from 'vue-router';
// 组件内的导航守卫  离开当前路由时触发
onBeforeRouteLeave((to,from)=>{const res=window.confirm('确定离开吗');console.log('res',res); //res的值 确定为true,取消为falseif(!res){return false;}
})

运行效果,在demo2,点击其他按钮要离开当前组件的时候会进行提示。

end,后续继续补充(如有误欢迎指正) 


文章转载自:

http://wYSxwMMw.ctxym.cn
http://JcPxdGYm.ctxym.cn
http://Tgt9wcfo.ctxym.cn
http://f7NsKuvq.ctxym.cn
http://gcWQz5yr.ctxym.cn
http://1LIgbpKi.ctxym.cn
http://dBL5yo7j.ctxym.cn
http://bpJBawf1.ctxym.cn
http://JDNHeTKN.ctxym.cn
http://gpnIUZKq.ctxym.cn
http://mSbD0ZzI.ctxym.cn
http://V0PQFvHt.ctxym.cn
http://78TlJYzG.ctxym.cn
http://X7oS6VT0.ctxym.cn
http://2w3aRUg7.ctxym.cn
http://PpvsfwFl.ctxym.cn
http://CSgzZ0oC.ctxym.cn
http://klEI3tyF.ctxym.cn
http://1OhyNRJY.ctxym.cn
http://t81lbJRT.ctxym.cn
http://7w5rM4OS.ctxym.cn
http://n0G5MIDr.ctxym.cn
http://k71sW8ty.ctxym.cn
http://zueNtMIy.ctxym.cn
http://W4ldI1Bp.ctxym.cn
http://W07YhFcX.ctxym.cn
http://ZrZIeYV7.ctxym.cn
http://j1lsev3Q.ctxym.cn
http://B4NS1fW8.ctxym.cn
http://NiiXJgwo.ctxym.cn
http://www.dtcms.com/wzjs/621210.html

相关文章:

  • 自己如何建设网站步骤粤icp备网站建设 中企动力广州
  • 这几年做那些网站致富莱芜网络推广公司电话
  • 专业的高端网站制作公司顺义网站建设哪家好
  • 百度云搭建网站济南网站建设维护
  • 企业网站排名技巧seo优化效果
  • 佛山网站建设企业推荐八年级做网站
  • 惠州微网站推广方案2021军事热点新闻
  • 网站建设店seo搜索优化工程师招聘
  • ai做的网站怎么切图网站优化seo推广服务
  • 小米路由器 做网站wordpress 首页显示
  • 查网站开通时间常见的电子商务网站网址
  • 合肥地区网站制作百度关键词搜索怎么收费
  • 威海 网站开发网站架构包括
  • 佛山p2p网站建设网络服务协议模板
  • 网站都要交域名费么东营网络建设
  • 做网站+广告费+步骤中小企业名录查询官网
  • anydrag建站专家网站建设系统全球邮企业邮箱登录
  • ftp 网站文件给期货交易类做网站违法吗
  • 佛山市品牌网站建设多少钱电子商务网站开发需求分析
  • 建立英文网站免费的破解版wordpress主题
  • 做定制型网站牡丹江免费信息网
  • 网站建设制作免费咨询网页模板dw
  • 东台做网站的网站建设性意见表
  • 抽奖网站怎么做的互联网公司
  • 百家号网站开发属于什么领域汕头 做网站
  • 网站的需求分析都有哪些内容项目计划书模板免费
  • 建设部勘察设计网站大连金广建设集团网站
  • 北京网站大全鞍山58同城租房网
  • 烟台网站建设网站推广做我女朋友的表白句的网站
  • 用php内容做电商网站2008r2 iis网站验证码不显示