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

网络推广做哪个网站比较好怎么做网页代理

网络推广做哪个网站比较好,怎么做网页代理,各种网站app,广州网络公司哪家最好目录 一、路由配置 1. 基本路由配置 2. 动态路由配置 3. 可选参数配置 二、路由跳转与传参 1. 声明式导航 (模板中) 2. 编程式导航 (JavaScript中) 三、参数接收 1. 接收动态路由参数 2. 接收查询参数 3. 监听参数变化 四、高级用法 1. 路由元信息 2. 路由守卫控…

目录

一、路由配置

1. 基本路由配置

2. 动态路由配置

3. 可选参数配置

二、路由跳转与传参

1. 声明式导航 (模板中)

2. 编程式导航 (JavaScript中)

三、参数接收

1. 接收动态路由参数

2. 接收查询参数

3. 监听参数变化

四、高级用法

1. 路由元信息

2. 路由守卫控制

3. 动态添加路由

五、完整示例

路由配置示例

组件使用示例


一、路由配置

1. 基本路由配置

// router/index.js
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')}
]const router = createRouter({history: createWebHistory(),routes
})export default router

2. 动态路由配置

const routes = [// 动态段以冒号开始{path: '/user/:id',name: 'User',component: () => import('@/views/User.vue')},// 多个动态参数{path: '/post/:postId/comment/:commentId',name: 'PostComment',component: () => import('@/views/PostComment.vue')}
]

3. 可选参数配置

{path: '/user/:id?',  // 问号表示可选name: 'UserOptional',component: () => import('@/views/UserOptional.vue')
}

二、路由跳转与传参

1. 声明式导航 (模板中)

<!-- 基本跳转 -->
<router-link to="/about">关于我们</router-link><!-- 动态路由传参 -->
<router-link :to="'/user/' + userId">用户主页</router-link>
<router-link :to="{ name: 'User', params: { id: userId } }">用户主页</router-link><!-- 查询参数传参 -->
<router-link :to="{ path: '/search', query: { keyword: 'vue' } }">搜索</router-link>

2. 编程式导航 (JavaScript中)

import { useRouter } from 'vue-router'const router = useRouter()// 1. 动态路由传参
router.push('/user/123')  // 路径方式
router.push({ name: 'User', params: { id: 123 } })  // 命名路由方式// 2. 查询参数传参
router.push({path: '/search',query: {keyword: 'vue',page: 1}
})// 3. 替换当前路由 (不保留历史记录)
router.replace({ path: '/login' })// 4. 前进/后退
router.go(1)  // 前进
router.go(-1) // 后退

三、参数接收

1. 接收动态路由参数

import { useRoute } from 'vue-router'const route = useRoute()// 接收单个参数
const userId = route.params.id// 接收多个参数
const postId = route.params.postId
const commentId = route.params.commentId// 可选参数处理
const optionalId = route.params.id || 'default'

2. 接收查询参数

import { useRoute } from 'vue-router'const route = useRoute()// 获取查询参数
const keyword = route.query.keyword
const page = Number(route.query.page) || 1  // 带类型转换和默认值// 处理数组参数 (如 ?tags=vue&tags=js)
const tags = Array.isArray(route.query.tags) ? route.query.tags : [route.query.tags].filter(Boolean)

3. 监听参数变化

import { watch } from 'vue'
import { useRoute } from 'vue-router'const route = useRoute()// 监听动态参数变化
watch(() => route.params.id,(newId) => {console.log('用户ID变化:', newId)fetchUserData(newId)}
)// 监听查询参数变化
watch(() => route.query,(newQuery) => {console.log('查询参数变化:', newQuery)},{ deep: true }
)

四、高级用法

1. 路由元信息

// 路由配置
{path: '/admin',name: 'Admin',component: () => import('@/views/Admin.vue'),meta: {requiresAuth: true,role: 'admin'}
}// 组件中获取
const route = useRoute()
const requiresAuth = route.meta.requiresAuth

2. 路由守卫控制

router.beforeEach((to, from, next) => {if (to.meta.requiresAuth && !isAuthenticated()) {next({path: '/login',query: { redirect: to.fullPath }})} else {next()}
})

3. 动态添加路由

// 添加单个路由
router.addRoute({path: '/new-route',name: 'NewRoute',component: () => import('@/views/NewRoute.vue')
})// 添加嵌套路由
router.addRoute('Admin', {path: 'settings',name: 'AdminSettings',component: () => import('@/views/AdminSettings.vue')
})

五、完整示例

路由配置示例

// router/index.js
import { createRouter, createWebHistory } from 'vue-router'const routes = [{path: '/',name: 'Home',component: () => import('@/views/Home.vue')},{path: '/product/:id',name: 'Product',component: () => import('@/views/Product.vue'),props: true // 将params作为props传递},{path: '/search',name: 'Search',component: () => import('@/views/Search.vue')},{path: '/login',name: 'Login',component: () => import('@/views/Login.vue'),meta: {guestOnly: true}}
]const router = createRouter({history: createWebHistory(),routes
})// 全局路由守卫
router.beforeEach((to, from, next) => {const isAuth = localStorage.getItem('token')if (to.meta.guestOnly && isAuth) {next({ name: 'Home' }) // 已登录用户不能访问登录页} else {next()}
})export default router

组件使用示例

<script setup>
import { useRouter, useRoute } from 'vue-router'
import { onMounted, watch } from 'vue'const router = useRouter()
const route = useRoute()// 编程式导航
const navigateToProduct = (id) => {router.push({name: 'Product',params: { id },query: { from: 'home' }})
}// 接收参数
const productId = route.params.id
const searchQuery = route.query.q// 监听参数变化
watch(() => route.params.id,(newId) => {console.log('产品ID变化:', newId)fetchProduct(newId)}
)// 接收props形式的参数 (需要路由配置 props: true)
const props = defineProps({id: String
})
</script><template><div><!-- 声明式导航 --><router-link :to="{ name: 'Product', params: { id: 123 }, query: { from: 'home' } }">产品123</router-link><!-- 编程式导航按钮 --><button @click="navigateToProduct(456)">查看产品456</button><!-- 显示当前路由参数 --><p>当前产品ID: {{ productId }}</p><p v-if="route.query.q">搜索词: {{ searchQuery }}</p></div>
</template>

总结

  1. 路由配置:使用 createRouter 创建路由,createWebHistory 创建历史模式

  2. 动态路由:使用 :param 语法定义动态段

  3. 跳转方式

    • 声明式:<router-link>

    • 编程式:router.push()/router.replace()

  4. 传参方式

    • 动态参数:params

    • 查询参数:query

  5. 参数接收:使用 useRoute() 获取当前路由信息

  6. 高级功能:路由守卫、元信息、动态路由添加等

按照这些方法,可以灵活地在 Vue3 项目中实现各种路由需求。


文章转载自:

http://EWzx0IuH.yprnp.cn
http://NnWEAbis.yprnp.cn
http://4whQBN3E.yprnp.cn
http://x8gI7Y5n.yprnp.cn
http://2UaF6QB9.yprnp.cn
http://vPFe0hng.yprnp.cn
http://FAcx8i3g.yprnp.cn
http://f4qwvJBV.yprnp.cn
http://PFKhuywM.yprnp.cn
http://y1aowQR6.yprnp.cn
http://FIZJeh0r.yprnp.cn
http://nAO6qwf8.yprnp.cn
http://1sNAhHsQ.yprnp.cn
http://4VaUlvJT.yprnp.cn
http://m2U3eMLf.yprnp.cn
http://3RtWRg5F.yprnp.cn
http://tGp8ubwr.yprnp.cn
http://UmXsdlIG.yprnp.cn
http://rFNJiI7b.yprnp.cn
http://07vJEiVH.yprnp.cn
http://NM5u731M.yprnp.cn
http://97u2UivI.yprnp.cn
http://JJISWeY6.yprnp.cn
http://6UgJb9to.yprnp.cn
http://l2RPnTTf.yprnp.cn
http://W8Cx6L2J.yprnp.cn
http://fShdmdin.yprnp.cn
http://AKftzRQa.yprnp.cn
http://iiPvETN2.yprnp.cn
http://3CjUBeXO.yprnp.cn
http://www.dtcms.com/wzjs/625272.html

相关文章:

  • 网页设计与网站建设文档莱芜雪野湖风景区
  • 做网站哪家好 青岛免费下载中国移动app
  • 永修县建设局网站线下销售怎么做推广
  • 注册网站的免费网址网站编程好学吗
  • 程序员帮忙做放贷网站技术优化seo
  • 宁乡网站建设在哪做公司网站需要什么手续
  • 个体户可以网站备案吗撩人的网站怎么做
  • python做网站教程虹口区网站建设
  • 网站文案标准格式做h5的网站页面设计
  • iis5.1发布网站展览馆设计公司排名
  • 重庆网站制作企业临沂网
  • vs2008怎么做网站wordpress 国内模板
  • 网站建设改革情况汇报你有网站 我做房东 只收佣金的网站
  • 网站维护基础知识wordpress首页插件
  • 企业整站优化电子商城系统开发模块
  • 重庆专门做网站的公司怎样设计一个网页
  • 有专门学做衣服网站有哪些青岛 生物类网站建设
  • 下沙做网站的什么是网站建设流程
  • 腾讯学生服务器做网站网站制作代理
  • 谁做的四虎网站是多少闽侯县住房和城乡建设网站
  • 已注册的网站如何注销品牌运营总监
  • 成都注册公司核名网站客户网站 备案
  • 网站备案 注销html做简单网站实例
  • 巢湖网站建设费用电子商务网站建设与营运
  • app网站开发公司网站开发流程及顺序
  • 东莞网站建设团队全网天下建立官方网站
  • 网页设计教学网站东莞网站建设优化推广
  • 个人做的网站百度搜索不到利用虚拟主机建设企业网站
  • 信阳网站建设信阳网站301设置
  • 网站建设公司兴田德润i优惠吗本地生活服务平台app