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

宿主选择 网站建设简航app是什么

宿主选择 网站建设,简航app是什么,免费咨询电脑维修,不写代码做网站目录 安装和配置Vue Router安装Vue Router配置Vue Router Vue Router的基本概念Vue Router 的配置项介绍routes中的配置项介绍 路由跳转使用 router-link组件使用router.push函数 路由传参动态路由嵌套路由命名路由路由守卫全局路由守卫路由独享守卫 路由懒加载使用import()方式… 目录 安装和配置Vue Router安装Vue Router配置Vue Router Vue Router的基本概念Vue Router 的配置项介绍routes中的配置项介绍 路由跳转使用 router-link组件使用router.push函数 路由传参动态路由嵌套路由命名路由路由守卫全局路由守卫路由独享守卫 路由懒加载使用import()方式实现懒加载使用动态import()方式实现懒加载 使用Vue Router的注意事项 Vue Router是一个官方的Vue.js路由管理器它与 Vue.js 核心深度集成通过它可以轻松地为单页应用程序SPA提供路由管理和导航功能。今天我们就来聊一聊Vue 3中使用Vue Router的那些事儿。 安装和配置Vue Router 安装Vue Router 安装Vue Router只需要在vue项目中打开终端输入如下命令即可安装 npm 方式安装 npm install vue-router4yarn方式安装 yarn add vue-router4配置Vue Router 为了便于我们后面代码维护和管理我们一般将路由相关的代码统一放到一个文件夹中。因此配置Vue Router的步骤如下 在src文件夹新建一个router文件夹在该文件夹下新建index.js文件在index.js中引入vue-router中的createRouter 和 createWebHashHistory 方法引入页面文件 import { createRouter,createWebHashHistory } from vue-router; import Home from ../views/Home.vue import About from ../views/About.vue import List from ../views/List.vue import Detail from ../views/Detail.vue在index.js中定义一个routes数组在里面定义路由规则 const routes [{path:/home,name:Home,component:Home},{path:/about,component:About},{path:/list,component:List},{path:/detail,component:Detail},{path:/,redirect:/home} ]在index.js中使用createRouter创建路由实例并配置路由模式和上面定义的路由规则 const router createRouter({history:createWebHashHistory(),routes })在index.js的最后使用export default 将上面创建的路由实例导出 export default router注册路由在main.js中导入上面创建的路由文件并使用app.use注册路由 import router from ./router const app createApp(App) app.use(router) //注册路由 app.mount(#app)在组件中使用路由组件 在App.vue中使用router-view组件来渲染要显示的组件在Tabbar组件中使用router-link组件生成链接 App.vue组件中代码 templateTitle/Titlerouter-view/router-viewTabbar/Tabbar /template script setup import Tabbar from ./components/Tabbar.vue; import Title from ./components/Title.vue; /script style scoped /styleTabbar组件中代码 templatedivrouter-link to/Home/router-linkrouter-link to/listList/router-linkrouter-link to/aboutAbout/router-link/div/template script setup /script style scoped div {position: fixed;bottom: 0;width: 100%;height: 50px;line-height: 50px;text-align: center;display: flex;justify-content: space-around; } /style至此我们就完成了路由的配置与搭建运行程序刷新浏览器可以看到页面已经可以正常跳转实现了路由功能。 虽然上面我们已经实现了一个完整的路由场景搭建但是我们还是要对Vue Router的基础知识进行深入的了解方便我们更好的理解和使用Vue Router。下面对Vue Router中的一些基本概念进行介绍。 Vue Router的基本概念 路由器Vue Router 提供了一个路由器用于管理应用程序中的路由。Vue Router 实例化一个 Vue Router 对象注册路由规则并以它为中心连接其他组件。 路由路由是分发到不同组件的 URL 地址。在 Vue Router 中路由通常是由 path 规则和相应的组件定义的。当浏览器的 URL 匹配到路由的 path 后相应的组件将会被加载到页面中。路由的信息可以从 route 对象中获取。 路由规则路由规则是由 path、component、name、meta、props 等属性组成的。其中path 表示 URL 的路径component 表示要渲染的组件name 表示路由名称meta 表示路由的元数据props 表示路由 props 数据。路由规则可以注册到 Vue Router 中。 导航守卫导航守卫是在路由跳转时执行的钩子函数用于控制路由的访问权限、处理路由跳转前后的逻辑等。在 Vue Router 中对于选项式 API常用的导航守卫有 beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave 等对于使用组合 API 和 setup 函数来编写组件的可以通过 onBeforeRouteUpdate 和 onBeforeRouteLeave 分别添加 update 和 leave 守卫。 Vue Router 的配置项介绍 我们在使用Vue Router 中的createRouter创建router对象时其为我们提供了很多配置项带完整配置项的示例代码如下 const router createRouter({history: createWebHashHistory(),routes: [],scrollBehavior: () ({ top: 0, left: 0 }),linkActiveClass: active,linkExactActiveClass: exact-active,parseQuery: null,stringifyQuery: null,fallback: true })上面代码中各个配置项的含义如下 history指定路由的 history 模式目前支持 createWebHistory()和 createWebHashHistory()模式。 routes定义路由规则的数组每一个路由规则都是一个对象包含 path、name、component 和 meta 等属性。 scrollBehavior指定路由切换时滚动行为的配置函数。该函数返回一个包含 x 和 y 属性的对象表示页面跳转后滚动的位置。 linkActiveClass指定激活状态的链接的 class 名称默认为 router-link-active。 linkExactActiveClass指定精确匹配的激活状态的链接的 class 名称默认为 router-link-exact-active。 parseQuery 和 stringifyQuery用于配置路由的查询参数解析和序列化函数。通常情况下我们不需要额外配置这两个函数因为 Vue Router 已经提供了默认的实现。 fallback用于配置是否开启 HTML5 History 模式的回退机制。默认值为 true表示当路由不匹配时将自动回退到历史记录中的上一个路由。 上面的配置项中我们一般只需要配置history和routes两个选项就可以了其它选项了解即可 routes中的配置项介绍 在 Vue Router 中路由规则的配置是通过 routes 属性来实现的。routes 属性中常用的配置如下 name路由规则的名字。可以用于编程式导航和组件内部的路由跳转。 path路由的路径可以包含动态参数和正则表达式。例如/user/:id 表示用户页面:id 是一个动态参数。 redirect路由的重定向规则。例如{ path: /, redirect: /home } 表示路由根路径的重定向。 component路由对应的组件。可以是一个普通的组件类或异步加载的组件。 children当前路由的子路由。可以是一个路由规则数组也可以是一个函数动态生成路由规则。 meta路由的元信息用于描述路由的一些额外信息。例如路由是否需要登录、权限鉴定等。 components路由对应的多个命名视图组件。 路由跳转 通过Vue Router我们可以通过router-link组件的to方法和使用router.push函数以编程方式两种方法导航到路由。 使用 router-link组件 使用router-link组件实现路由跳转我们只需要将菜单按钮使用router-link组件包裹并在上面使用to方法即可进行跳转示例代码如下 divrouter-link to/Home/router-linkrouter-link to/listList/router-linkrouter-link to/aboutAbout/router-link /div使用router.push函数 使用router.push函数以编程方式实现路由跳转我们只需要在普通按钮上绑定click事件并在事件中调用router.push()方法即可实现跳转示例代码如下: templatedivrouter-link to/Home/router-linkrouter-link to/listList/router-linkrouter-link to/aboutAbout/router-linkbutton clickgotoAbout 关于 /button/div/template script setup import { useRouter } from vue-router const router useRouter() const gotoAbout () {router.push(/about) } /script使用 router.push 方法会向 history 栈添加一个新的记录所以当用户点击浏览器后退按钮时会回到之前的 URL。 事实上当我们点击 router-link 时Vue Router 内部会调用这个方法所以点击 router-link :to... 相当于调用 router.push(...) router.push()方法中的参数可以是一个字符串路径或者一个描述地址的对象。 // 字符串路径 router.push(/users/eduardo)// 带有路径的对象 router.push({ path: /users/eduardo })// 命名的路由并加上参数让路由建立 url router.push({ name: user, params: { username: eduardo } })// 带查询参数结果是 /register?planprivate router.push({ path: /register, query: { plan: private } })// 带 hash结果是 /about#team router.push({ path: /about, hash: #team })路由传参 在Vue Router中可以通过以下方式进行路由传参和获取参数 通过路由路径传递参数在路由配置中使用动态路由匹配Dynamic Route Matching例如 const routes [{path: /detail/:id,name: Detail,component: Detail}]在路由路径中使用冒号表示参数参数值会被放入route.params对象中。我们可以通过调用route.params获取参数如访问地址为/detail/123则我们可以通过route.params.id获取值为123。 通过query参数传递参数在路由跳转时使用query参数例如 // 在组件中跳转 router.push({path: /detail,query: { id: 123 } })// 在模板中跳转 router-link to/detail?id123Detail/router-link在路由中使用query参数时参数值会被放入route.query对象中。我们可以通过route.query获取参数。例如访问地址为/detail?id123则我们可以通过route.query.id获取值为123。 在路由配置中通过props选项传递参数。例如 const routes [{path: /detail/:id,name: Detail,component: Detail,props: { id: 123 }}]在组件中可以直接使用props接收参数 在路由配置中通过meta选项传递参数。例如 const routes [{path: /detail/:id,name: Detail,component: Detail,meta: { id: 123 }}]在组件中可以通过route.meta获取参数 动态路由 动态路由是指将一个路由的一部分作为参数来构建的路由。例如如果我们要为每个用户创建一个单独的页面我们可以使用动态路由创建一个路径为/users/:userId的路由其中:userId是一个参数。 动态路由在定义路由时使用冒号:来表示参数。定义动态路由需要使用path方式定义。例如要定义一个动态路由我们可以这样写 {path: /users/:userId,name: user,component: User }在上面的代码中路径中的:userId表示一个参数它可以从路由对象的params属性中获取。在组件中可以这样读取userId console.log(route.params.userId)在使用动态路由时Vue Router还支持使用可选的参数和正则表达式来定义路由。例如可以这样定义一个包含可选参数的动态路由 {path: /users/:userId/:postId?,name: post,component: Post }在上面的代码中路径中的postId参数是可选的我们在它后面加一个问号代表可选参数。现在如果路径是/users/123那么postId将是undefined如果路径是/users/123/456那么postId将是456。 嵌套路由 嵌套路由允许我们在一个父级路由下嵌套多个子路由从而形成更加复杂的页面结构。 要定义嵌套路由我们可以在父级路由的routes数组中定义一个子路由对象数组每个子路由对象都包含一个path和一个component属性表示当前子路由的访问路径和对应的组件。同时我们还可以在子路由对象中定义子路由的子路由从而形成嵌套的路由结构。 我们使用配置项children表示路由的嵌套关系如下示例代码 const routes [{path: /,component: Home,children: [{path: about,component: About},{path: contact,component: Contact}]}]在上面的代码中我们定义了一个名为Home的组件作为父级路由的组件并在children数组中定义了两个子路由About和Contact。这样当用户访问/about或/contact时Vue Router 就会渲染对应的子组件并将其嵌套在Home组件内。 命名路由 命名路由可以为路由设置一个名称以便在代码中进行引用和跳转。使用命名路由可以让代码更加清晰易懂尤其是在需要跳转到具有动态参数的路由时。 要定义命名路由我们可以在路由对象中使用name属性来指定路由的名称例如 const routes [{path: /,name: home,component: Home},{path: /about,name: about,component: About},{path: /user/:id,name: user,component: User}]在上面的代码中我们为三个路由分别指定了名称home、about和user。然后在代码中我们可以通过这些名称来生成对应的路由链接或路由跳转例如 router-link :to{name: home}Home/router-linkrouter-link :to{name: about}About/router-linkrouter-link :to{name: user, params: {id: 123}}User 123/router-linkrouter.push({name: home})router.push({name: user, params: {id: 456}})在上面的代码中我们分别使用了router-link组件和router.push()方法来跳转到具有命名路由的路由。其中使用params属性可以动态指定路由中的参数。 命名路由在需要动态传递参数的情况下使用非常方便。 路由守卫 路由守卫是一种函数在路由的各个阶段被调用可以用于拦截路由的访问或对路由进行一些操作。我们可以使用路由守卫来控制路由的跳转和访问权限。 在路由守卫中我们通常会用到三个参数to、from和next。 to表示即将要跳转的目标路由对象包含路由的路径、参数和查询字符串等信息。 from表示当前路由对象即正在离开的路由对象。 next是一个函数用于进行路由控制和跳转。当调用next函数时路由会继续向下执行。我们可以通过next函数来控制路由的行为例如渲染组件、跳转路由、取消操作等。 几种使用next函数的情况 next(): 表示继续执行下一个路由守卫。 next(false): 表示取消当前的路由跳转。 next(/path): 表示跳转到指定的路由路径。 next(error): 表示在路由跳转过程中发生了错误例如权限不足等。 需要注意的是在使用路由守卫时我们需要显式地调用next函数来控制路由的跳转和功能否则路由不会继续向下执行。在不同的守卫中next函数的行为和功能也会有所不同需要根据具体的场景进行调用。 Vue Router中的路由守卫分为全局路由守卫和路由独享守卫 全局路由守卫 全局路由守卫是在整个应用中都生效的守卫可以用于拦截所有的路由操作。在Vue Router4中全局守卫有三个beforeEach、beforeResolve和afterEach。 beforeEach: 在路由跳转之前执行可以用于进行全局的访问控制或重定向跳转等操作。 beforeResolve: 在路由跳转完成前执行可以用于等待异步路由组件加载完成或在路由跳转前进行一些操作。 afterEach: 在路由跳转完成后执行可以用于对页面进行一些操作例如监测页面埋点或修改页面标题等。 一个验证用户是否登录的路由守卫示例代码如下 router.beforeEach((to, from, next) {if (to.name ! Login !isAuthenticated) next({ name: Login })else next() })上面代码中如果用户没有登录则页面跳转到Login页面如果已经登录则执行next()跳转 路由独享守卫 路由独享守卫仅对当前路由生效可以用于限制或增强某个路由的访问权限。在Vue Router4中路由独享守卫有两个beforeEnter和leaveGuard。 beforeEnter: 在进入当前路由之前执行可以用于增强当前路由的访问权限或进行相关操作。 leaveGuard: 在离开当前路由之前执行可以用于给用户提示或进行相关操作。 使用路由守卫时我们可以在createRouter函数中进行注册例如 const routes[{path: /,component: Home},{path: /about,component: About,beforeEnter: (to, from, next) {// 进行路由访问控制或相关操作}}]路由懒加载 路由懒加载是一种将路由组件按需异步加载的方式只有当路由对应的组件需要使用时才会动态地加载该组件对应的代码。使用路由懒加载可以优化应用程序的性能 在Vue Router中使用路由懒加载我们可以通过使用import()和动态import()两种方式来实现 使用import()方式实现懒加载 const Home () import(./views/Home.vue) const About () import(./views/About.vue) const routes [{path: /,component: Home},{path: /about,component: About}] const router createRouter({history: createWebHistory(),routes })使用动态import()方式实现懒加载 const routes [{path: /,component: () import(./views/Home.vue)},{path: /about,component: () import(./views/About.vue)} ] const router createRouter({history: createWebHashHistory(),routes })使用Vue Router的注意事项 动态参数不能有斜杆当使用动态参数时请注意URL不能和动态参数相同。 导航流程:路由类似于栈每次路由的跳转都会被历史纪录中的历史记录所记录。如果你跳转到相同的路由那么历史记录中的最后几次都会被忽略。默认情况下新跳转的路由不会触发路由更新流程你需要显式地使用router.push或者router.replace方法来更新到当前路由。 导航被取消如果你在beforeRouteLeave或beforeRouteUpdate守卫中执行了异步操作则必须确保该异步操作已经完成并调用了next(true)以确保导航可以进行。 OK关于vue3中使用Vue Router的相关内容就聊到这里有问题的小伙伴评论区留言喜欢的小伙伴点赞关注加收藏哦
文章转载自:
http://www.morning.jzykw.cn.gov.cn.jzykw.cn
http://www.morning.xnhnl.cn.gov.cn.xnhnl.cn
http://www.morning.hfnbr.cn.gov.cn.hfnbr.cn
http://www.morning.nd-test.com.gov.cn.nd-test.com
http://www.morning.mcpdn.cn.gov.cn.mcpdn.cn
http://www.morning.qrndh.cn.gov.cn.qrndh.cn
http://www.morning.wbqk.cn.gov.cn.wbqk.cn
http://www.morning.brzlp.cn.gov.cn.brzlp.cn
http://www.morning.cnkrd.cn.gov.cn.cnkrd.cn
http://www.morning.wpkr.cn.gov.cn.wpkr.cn
http://www.morning.phlrp.cn.gov.cn.phlrp.cn
http://www.morning.srkwf.cn.gov.cn.srkwf.cn
http://www.morning.fewhope.com.gov.cn.fewhope.com
http://www.morning.xknsn.cn.gov.cn.xknsn.cn
http://www.morning.gqtzb.cn.gov.cn.gqtzb.cn
http://www.morning.rwhlf.cn.gov.cn.rwhlf.cn
http://www.morning.xnpj.cn.gov.cn.xnpj.cn
http://www.morning.bqmdl.cn.gov.cn.bqmdl.cn
http://www.morning.ftdlg.cn.gov.cn.ftdlg.cn
http://www.morning.rzpkt.cn.gov.cn.rzpkt.cn
http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn
http://www.morning.ympcj.cn.gov.cn.ympcj.cn
http://www.morning.btblm.cn.gov.cn.btblm.cn
http://www.morning.fxzgw.com.gov.cn.fxzgw.com
http://www.morning.tdldh.cn.gov.cn.tdldh.cn
http://www.morning.rklgm.cn.gov.cn.rklgm.cn
http://www.morning.rgsgk.cn.gov.cn.rgsgk.cn
http://www.morning.cpljq.cn.gov.cn.cpljq.cn
http://www.morning.yybcx.cn.gov.cn.yybcx.cn
http://www.morning.hypng.cn.gov.cn.hypng.cn
http://www.morning.rykmf.cn.gov.cn.rykmf.cn
http://www.morning.lzqdd.cn.gov.cn.lzqdd.cn
http://www.morning.tnbas.com.gov.cn.tnbas.com
http://www.morning.rqjxc.cn.gov.cn.rqjxc.cn
http://www.morning.cwqpl.cn.gov.cn.cwqpl.cn
http://www.morning.spwln.cn.gov.cn.spwln.cn
http://www.morning.txltb.cn.gov.cn.txltb.cn
http://www.morning.rbhqz.cn.gov.cn.rbhqz.cn
http://www.morning.bpkqd.cn.gov.cn.bpkqd.cn
http://www.morning.clhyj.cn.gov.cn.clhyj.cn
http://www.morning.zmnyj.cn.gov.cn.zmnyj.cn
http://www.morning.nmfxs.cn.gov.cn.nmfxs.cn
http://www.morning.mkpqr.cn.gov.cn.mkpqr.cn
http://www.morning.xdxpq.cn.gov.cn.xdxpq.cn
http://www.morning.diuchai.com.gov.cn.diuchai.com
http://www.morning.hrtct.cn.gov.cn.hrtct.cn
http://www.morning.ghslr.cn.gov.cn.ghslr.cn
http://www.morning.rqnml.cn.gov.cn.rqnml.cn
http://www.morning.mzwqt.cn.gov.cn.mzwqt.cn
http://www.morning.qkskm.cn.gov.cn.qkskm.cn
http://www.morning.cpkcq.cn.gov.cn.cpkcq.cn
http://www.morning.rnhh.cn.gov.cn.rnhh.cn
http://www.morning.mnjyf.cn.gov.cn.mnjyf.cn
http://www.morning.yydeq.cn.gov.cn.yydeq.cn
http://www.morning.tssmk.cn.gov.cn.tssmk.cn
http://www.morning.jggr.cn.gov.cn.jggr.cn
http://www.morning.nzmw.cn.gov.cn.nzmw.cn
http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn
http://www.morning.yqrgq.cn.gov.cn.yqrgq.cn
http://www.morning.zbhfs.cn.gov.cn.zbhfs.cn
http://www.morning.dqgbx.cn.gov.cn.dqgbx.cn
http://www.morning.qbzdj.cn.gov.cn.qbzdj.cn
http://www.morning.kfcfq.cn.gov.cn.kfcfq.cn
http://www.morning.mldrd.cn.gov.cn.mldrd.cn
http://www.morning.tslxr.cn.gov.cn.tslxr.cn
http://www.morning.hqbnx.cn.gov.cn.hqbnx.cn
http://www.morning.wrqw.cn.gov.cn.wrqw.cn
http://www.morning.tzrmp.cn.gov.cn.tzrmp.cn
http://www.morning.rmxwm.cn.gov.cn.rmxwm.cn
http://www.morning.tpfny.cn.gov.cn.tpfny.cn
http://www.morning.rmxgk.cn.gov.cn.rmxgk.cn
http://www.morning.c7630.cn.gov.cn.c7630.cn
http://www.morning.gwjsm.cn.gov.cn.gwjsm.cn
http://www.morning.gnlyq.cn.gov.cn.gnlyq.cn
http://www.morning.lwrks.cn.gov.cn.lwrks.cn
http://www.morning.tnkwj.cn.gov.cn.tnkwj.cn
http://www.morning.ktmnq.cn.gov.cn.ktmnq.cn
http://www.morning.bhbxd.cn.gov.cn.bhbxd.cn
http://www.morning.twdkt.cn.gov.cn.twdkt.cn
http://www.morning.qgjxy.cn.gov.cn.qgjxy.cn
http://www.tj-hxxt.cn/news/258540.html

相关文章:

  • 建设网站的风险网页制作项目简介范文
  • 广州建企业网站唯品会官网一家做特卖的网站
  • 网站主播空间设计网站推荐
  • 网站制作企业一起做网店17网
  • 搬瓦工vps做网站速度怎么样奉化网站关键词优化费用
  • 网站广告动态图怎么做网页制作作业成品
  • 网站网站制作400多少钱wordpress美文主题
  • 南京网站建设价位展厅设计说明200字
  • wordpress网站关闭引流推广话术文案
  • 查看网站是否收录中国网站推广黄页名录
  • 关于网站建设的建议wordpress .htaccess 伪静态
  • wordpress网站全屏苏州网站设计公司兴田德润i网址多少
  • 三桥网站建设做网站有哪些公司
  • 下载网站php源码知名手机网站
  • 长沙网站建设湘icp备网络规划设计师论文万能模板
  • 技术号的网站建设徐州建设工程交易网柖标公告
  • 如何让百度口碑收录自己的网站休闲食品网站建设策划书
  • 长春建站费用网站开发语言为 php
  • 和谐校园网站建设阿土伯 是做网站的吗
  • 怎么做招聘网站链接做网站 sql 用哪种
  • 没有文章更新的网站怎么做优化设计作品展示网站
  • 上海做网站制作wordpress 防黑
  • 通化建设工程信息网站短视频运营主要做什么
  • 如何根据网址攻击网站内部网站 建设目标
  • 个人备案能公司网站厦门网站建设手机版
  • 做个外贸网站大概多少钱安徽金开建设集团网站
  • 泰安做网站哪家好校园网站开发需求
  • 一个网站怎么做新闻模块外贸网站
  • 百度网站推广怎么收费现在做网络推广网站建设怎么样
  • 什么是网站推广策略云南固恒建设集团有限公司网站