当前位置: 首页> 科技> IT业 > 房地产销售话术_电信宽带办理多少钱一年_无人区在线观看高清1080_免费网站seo诊断

房地产销售话术_电信宽带办理多少钱一年_无人区在线观看高清1080_免费网站seo诊断

时间:2025/7/9 13:57:54来源:https://blog.csdn.net/lh_1254/article/details/146676402 浏览次数:0次
房地产销售话术_电信宽带办理多少钱一年_无人区在线观看高清1080_免费网站seo诊断
一、安装路由

bash

# 使用 npm 安装
npm install vue-router@4# 或使用 yarn
yarn add vue-router@4
二、路由配置与暴露
1. 路由配置文件 router/index.js

javascript

import { createRouter, createWebHistory } from 'vue-router'// 定义路由数组,每个对象代表一个路由配置
const routes = [{// 路由的路径,这里表示根路径path: '/',// 路由的名称,方便后续编程式导航使用name: 'Home',// 该路由对应的组件,使用懒加载的方式引入,提高应用加载性能component: () => import('@/views/Home.vue')},{path: '/about',name: 'About',component: () => import('@/views/About.vue')},{// 动态路由,:id 是一个参数占位符path: '/user/:id',name: 'User',component: () => import('@/views/User.vue')},{path: '/dashboard',// 该路由对应的组件component: () => import('@/layouts/DashboardLayout.vue'),// 嵌套路由,子路由的路径是相对于父路由的children: [{ path: '', name: 'DashboardHome', component: () => import('@/views/DashboardHome.vue') },{ path: 'settings', name: 'DashboardSettings', component: () => import('@/views/DashboardSettings.vue') }]},{// 匹配所有未定义的路由,用于显示 404 页面path: '/:pathMatch(.*)*',name: 'NotFound',component: () => import('@/views/NotFound.vue')}
]// 创建路由实例
const router = createRouter({// 使用 HTML5 History 模式,去掉了 URL 中的 # 符号history: createWebHistory(),// 传入路由配置数组routes
})// 暴露路由实例,以便在其他地方使用
export default router

路由配置文件 router/index.js 是整个路由系统的核心。routes 数组中每个对象代表一个路由配置,包含路径、名称和对应的组件。对于嵌套路由,通过 children 属性来配置子路由。createRouter 函数用于创建路由实例,history 选项指定了路由的历史模式,这里使用的是 HTML5 History 模式。最后通过 export default router 将路由实例暴露出去,方便在其他文件中引入使用。

2. 在 main.js 中引入并使用路由

javascript

import { createApp } from 'vue'
import router from './router'
import App from './App.vue'// 创建 Vue 应用实例
createApp(App)// 将路由实例挂载到 Vue 应用上.use(router)// 将应用挂载到 DOM 节点上.mount('#app')

在 main.js 中,我们引入了路由实例并通过 use(router) 方法将其挂载到 Vue 应用上。这样,整个应用就可以使用路由功能了。最后,使用 mount('#app') 将应用挂载到指定的 DOM 节点上。

三、基础用法演示
1. 在组件中使用路由导航

vue

<!-- App.vue -->
<template><nav><!-- router-link 组件用于生成路由链接,to 属性指定要跳转的路由路径 --><router-link to="/">Home</router-link> |<router-link to="/about">About</router-link></nav><!-- router-view 是路由出口,用于显示当前匹配的路由组件 --><router-view/>
</template>

在 App.vue 组件中,我们使用 <router-link> 组件来生成路由链接,用户点击链接时会跳转到指定的路由。<router-view> 则是路由出口,它会根据当前的路由匹配情况显示对应的组件。

2. 动态路由获取参数

vue

<!-- User.vue -->
<template><h1>用户详情页</h1><!-- 通过 $route.params 来获取动态路由中的参数 --><p>用户ID:{{ $route.params.id }}</p>
</template><script>
export default {computed: {userId() {return this.$route.params.id}}
}
</script>

在动态路由中,路径中的 :id 是一个参数占位符。在 User.vue 组件中,我们可以通过 $route.params 来获取这些参数。这里使用计算属性 userId 来获取用户 ID,方便在模板中使用。

3. 编程式导航

javascript

// 在组件中使用
// 跳转到指定路由,会向 history 栈添加记录
this.$router.push('/about')
// 替换当前路由,不会保留历史记录
this.$router.replace('/login')
// 回退上一页
this.$router.go(-1)

$router 是路由实例,push 方法用于导航到新路由,它会向浏览器的历史记录栈中添加一条新记录。replace 方法用于替换当前路由,不会保留历史记录。go 方法用于在历史记录中前进或后退,传入负数表示后退,正数表示前进。

四、哈希注入与相关操作
1. 在路由中使用哈希

javascript

// 编程式导航时添加哈希
this.$router.push({ path: '/about', hash: '#section1' })// 路由配置中监听哈希变化
router.beforeEach((to, from, next) => {// 判断目标路由是否包含哈希值if (to.hash) {console.log('当前路由的哈希值:', to.hash)}// 继续路由跳转next()
})

在编程式导航时,可以通过对象形式传递 hash 属性来添加哈希值。在路由守卫中,我们可以通过 to.hash 获取目标路由的哈希值,并进行相应的处理。next() 方法用于继续路由跳转。

2. 监听哈希变化

javascript

window.addEventListener('hashchange', () => {const currentHash = window.location.hashconsole.log('哈希值发生变化:', currentHash)
})

通过 window.addEventListener('hashchange') 可以监听浏览器地址栏中哈希值的变化。当哈希值发生变化时,会触发回调函数,我们可以在回调函数中获取当前的哈希值并进行相应的操作。

五、高级功能
1. 路由守卫

javascript

// 全局前置守卫,会在每次路由切换前执行
router.beforeEach((to, from, next) => {// 判断目标路由是否需要认证,并且用户是否已认证if (to.meta.requiresAuth && !isAuthenticated()) {// 如果未认证,跳转到登录页面next('/login')} else {// 继续路由跳转next()}
})// 路由独享守卫,只作用于当前路由
const routes = [{path: '/dashboard',component: DashboardLayout,beforeEnter: (to, from, next) => {// 判断用户是否有访问权限if (hasPermission()) {// 有权限,继续路由跳转next()} else {// 没有权限,跳转到未授权页面next('/unauthorized')}},children: [// ...]}
]// 组件内守卫
export default {beforeRouteEnter(to, from, next) {// 在渲染该组件的对应路由被验证前调用// 不能获取组件实例 `this`,因为当守卫执行前,组件实例还没被创建next(vm => {// 通过 `vm` 访问组件实例})},beforeRouteUpdate(to, from, next) {// 在当前路由改变,但是该组件被复用时调用// 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,// 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。// 可以访问组件实例 `this`next()},beforeRouteLeave(to, from, next) {// 在导航离开渲染该组件的对应路由时调用// 可以访问组件实例 `this`const answer = window.confirm('确定要离开吗?')if (answer) {// 用户确认离开,继续路由跳转next()} else {// 用户取消离开,阻止路由跳转next(false)}}
}

路由守卫用于在路由切换的不同阶段执行特定的逻辑。全局前置守卫 beforeEach 会在每次路由切换前执行,可用于全局的权限验证等操作。路由独享守卫 beforeEnter 只作用于当前路由,用于该路由的特定权限验证。组件内守卫用于在组件内部处理路由相关的逻辑,如在进入、更新、离开组件时执行特定操作。

2. 路由元信息

javascript

const routes = [{path: '/admin',name: 'Admin',component: () => import('@/views/Admin.vue'),// 路由元信息,用于存储额外的信息meta: {requiresAuth: true,roles: ['admin']}}
]router.beforeEach((to, from, next) => {// 判断目标路由是否需要认证,并且用户是否已认证if (to.meta.requiresAuth && !isAuthenticated()) {// 如果未认证,跳转到登录页面next('/login')} else if (to.meta.roles && !hasRole(to.meta.roles)) {// 判断用户是否有相应的角色权限next('/unauthorized')} else {// 继续路由跳转next()}
})

在路由配置中可以通过 meta 属性添加元信息,如权限要求、角色要求等。在路由守卫中可以根据这些元信息进行相应的验证,确保用户有足够的权限访问目标路由。

六、常用特性说明
特性说明
<router-view>路由出口,显示匹配组件
<router-link>生成路由链接,默认渲染为 <a> 标签
router.push导航到新路由,会向 history 栈添加记录
router.replace替换当前路由,不会保留历史记录
router.go在历史记录中前进或后退
$route当前路由信息对象(包含 path、params、query、hash 等)
$router路由实例,用于编程式导航和路由守卫等操作
七、注意事项
  1. Vue3 需要搭配 Vue Router 4.x 版本。
  2. history 模式需要后端支持,因为在刷新页面时,服务器需要正确处理这些请求。
  3. 路由懒加载使用 () => import('...') 语法,提高应用的加载性能。
  4. 动态路由建议使用 props: true 传递参数,使组件更易于测试和复用。
关键字:房地产销售话术_电信宽带办理多少钱一年_无人区在线观看高清1080_免费网站seo诊断

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: