网上服务旗舰店,seo网站怎么搭建,好网站123,wordpress 制作网站文章目录 Vue3路由1. 载入vue-router 库2. 实例2.1 Vue.js vue-router 实现单页应用2.2 router-link创建链接2.3 router-view显示与url对应组件2.4 router-link 相关属性 Vue3路由
1. 载入vue-router 库
Vue.js 路由需要载入vue-router 库 安装直接下载地址#xf… 文章目录 Vue3路由1. 载入vue-router 库2. 实例2.1 Vue.js vue-router 实现单页应用2.2 router-link创建链接2.3 router-view显示与url对应组件2.4 router-link 相关属性 Vue3路由
1. 载入vue-router 库
Vue.js 路由需要载入vue-router 库 安装直接下载地址https://unpkg.com/vue-router4 NPM使用使用淘宝镜像 npm install -g cnpm --registryhttps://registry.npmmirror.com
cnpm install vue-router42. 实例
2.1 Vue.js vue-router 实现单页应用 router-link 是一个组件该组件用于设置一个导航链接切换不同 HTML 内容。 to 属性为目标地址 即要显示的内容。 以下实例中我们将 vue-router 加进来然后配置组件和路由映射再告诉 vue-router 在哪里渲染它们。代码如下所示 script srchttps://unpkg.com/vue3/script
script srchttps://unpkg.com/vue-router4/scriptdiv idapph1Hello App!/h1p!--使用 router-link 组件进行导航 --!--通过传递 to 来指定链接 --!--router-link 将呈现一个带有正确 href 属性的 a 标签--router-link to/Go to Home/router-linkrouter-link to/aboutGo to About/router-link/p!-- 路由出口 --!-- 路由匹配到的组件将渲染在这里 --router-view/router-view
/div2.2 router-link创建链接
上面实例没有使用常规的 a 标签而是使用一个自定义组件 router-link 来创建链接。这使得 Vue Router 可以在不重新加载页面的情况下更改 URL处理 URL 的生成以及编码。我们将在后面看到如何从这些功能中获益。
2.3 router-view显示与url对应组件
router-view 将显示与 url 对应的组件。你可以把它放在任何地方以适应你的布局。
!DOCTYPE html
html
headmeta charsetutf-8titleVue 测试实例 router-link 来创建链接 router-view 将显示与 url 对应的组件/titlescript srchttps://unpkg.com/vue3/scriptscript srchttps://unpkg.com/vue-router4/script
/head
body
!--创建一个id为app class为demo的div--
div idapp classdemoh1Hello App/h1
!-- 使用router-link组件进行导航 to传递制定链接--
!-- 页面效果router-link/router-link将呈现一个带有正确herf属性的a标签--p
!-- 使用Home路由组件--router-link to/Go to Home/router-link
!-- 使用About路由组件--router-link to/aboutGo to About/router-link/p!-- 路由入口 路由匹配到的组件将渲染在这里--router-view/router-view
/divscript
// 1. 定义路由组件 也可以从其他文件导入const Home { template: divHome/div}const About { template: divAbout/div}// 2.定义一些路由并映射到路由组件 每个路由都需要映射到一个组件const routes [{ path: /, component: Home},{ path: /about, component: About},]// 3.创建路由实例并传递routes配置 可以在此输入更多的配置 单一般不输入 保持简单const router VueRouter.createRouter({// 4. 内部提供了history模式实现 为了简单起见我们在这里使用 hash 模式history: VueRouter.createWebHistory(),// routes:routes的缩写为routesroutes,})// 5. 创建并挂载根实例const app Vue.createApp({})// 确保_use_ 路由实例使整个应用支持路由app.use(router)
// 将app应用挂载到名为app的divapp.mount(#app)/script
/body
/html页面效果 点击Go to Home 点击Go to About 以上导航渲染结果点击过的导航链接都会加上样式 class router-link-exact-active router-link-active。 a href/ classrouter-link-active router-link-exact-active aria-currentpageGo to Home/a
a href/about classGo to About/a2.4 router-link 相关属性 to表示目标路由的链接 当被点击后内部会立刻把 to 的值传到 router.push()所以这个值可以是一个字符串或者是描述目标位置的对象。 !-- 字符串 --
router-link tohomeHome/router-link
!-- 渲染结果 --
a hrefhomeHome/a!-- 使用 v-bind 的 JS 表达式 --
router-link v-bind:tohomeHome/router-link!-- 不写 v-bind 也可以就像绑定别的属性一样 --
router-link :tohomeHome/router-link!-- 同上 --
router-link :to{ path: home }Home/router-link!-- 命名的路由 --
router-link :to{ name: user, params: { userId: 123 }}User/router-link!-- 带查询参数下面的结果为 /register?planprivate --
router-link :to{ path: register, query: { plan: private }}Register/router-linkreplace 设置 replace 属性的话当点击时会调用 router.replace() 而不是 router.push()导航后不会留下 history 记录。 router-link :to{ path: /abc} replace/router-linkappend 设置 append 属性后则在当前 (相对) 路径前添加其路径。例如我们从 /a 导航到一个相对路径 b如果没有配置 append则路径为 /b如果配了则为 /a/b router-link :to{ path: relative/path} append/router-linktag 有时候想要 router-link 渲染成某种标签例如 li。 于是我们使用 tag prop 类指定何种标签同样它还是会监听点击触发导航。 router-link to/foo taglifoo/router-link
!-- 渲染结果 --
lifoo/liactive-class 设置 链接激活时使用的 CSS 类名。可以通过以下代码来替代。注意这里 class 使用 active-class_active。 style._active{background-color : red;}
/style
prouter-link v-bind:to { path: /route1} active-class _activeRouter Link 1/router-linkrouter-link v-bind:to { path: /route2} tag spanRouter Link 2/router-link
/pexact-active-class 配置当链接被精确匹配的时候应该激活的 class。可以通过以下代码来替代。 prouter-link v-bind:to { path: /route1} exact-active-class _activeRouter Link 1/router-linkrouter-link v-bind:to { path: /route2} tag spanRouter Link 2/router-link
/pevent 声明可以用来触发导航的事件。可以是一个字符串或是一个包含字符串的数组。 如设置了 event 为 mouseover 及在鼠标移动到 Router Link 1 上时导航的 HTML 内容会发生改变。 router-link v-bind:to { path: /route1} event mouseoverRouter Link 1/router-link