이 글은 FamilyMart의 VueVue-Router에 대해 자세히 설명하고, 라우팅 관련 지식을 배우는 것이 모든 분들께 도움이 되기를 바랍니다!
라우팅의 개념은 소프트웨어 공학에서 처음 등장하고 백엔드 라우팅에서 처음 구현된 이유는 웹의 개발이 주로 다음과 같은 과정을 거쳤기 때문입니다. 단계:
장점: SEO 최적화에 도움이 됨
단점: 전체 페이지는 백엔드 직원이 관리하며 HTML 코드와 데이터 해당 로직이 혼합되며 작성 및 유지 관리가 매우 까다롭습니다. 가난한.
2. 프론트엔드와 백엔드 분리
**프런트엔드 렌더링:**각 요청에 포함된 정적 리소스는 정적 리소스 서버에서 가져옵니다. 이러한 리소스에는 HTML+CSS+JS가 포함됩니다. 그런 다음 이러한 요청은 렌더링을 위해 프런트엔드 리소스에 반환됩니다. 클라이언트의 모든 요청은 정적 리소스 서버의 파일을 요청합니다. 현재 백엔드는 API 제공만 담당합니다.백엔드는 API 제공만 담당하고, 프런트엔드는 Ajax를 통해 데이터를 얻은 후 JavaScript를 통해 데이터를 페이지에 렌더링합니다.
백엔드는 end는 데이터 중심, Front-End는 상호작용과 시각화 중심
핵심: 페이지 URL을 변경하지만 페이지를 새로 고치지는 마세요.
npm install vue-router
vue 비디오 튜토리얼
]import { createRouter, createWebHashHistory } from "vue-router" import Home from "../views/Home.vue" import About from "../views/About.vue" // 创建一个路由:映射关系 const router = new createRouter({ history: createWebHashHistory(), routes: [ { path: "/", redirect: "/home" }, { path: "/home", component: Home }, { path: "/about", component: About } ] }) export default router
보충: 경로의 기타 속성
name 속성: 경로의 고유 이름을 기록합니다.
meta 속성: 사용자 정의 데이터router-link(보충)
router-link In 실제로 구성할 수 있는 속성은 많습니다:
active-class 속성: a 요소를 활성화한 후 적용되는 클래스를 설정합니다. 기본값은 router-link-active입니다.
Dynamic Routing
1을 반환합니다. 동적 라우팅
获取动态路由的值(例如上面例子中 用户id 123),在template中,直接通过 $route.params获取值。
对于没有匹配到相应的路由,我们可以给用户匹配一个固定的页面。通过 $route.params.pathMatch获取到传入的参数
组件的本身也有组件需要内部切换,这个时候就可以采用嵌套路由,在第一层路由中也使用router-view来占位之后需要渲染的组件。
{ path: "/home", component: () => import("../views/Home.vue"), children: [ { path: "/show", component: () => import("../views/component/show.vue") }, { path: "/detail", component: () => import("../views/component/detail.vue") } ] },
通过代码来控制页面的跳转
栗子:点击一个按钮跳转页面
通过query的方式来传递参数,在界面中通过 $route.query 来获取参数。
使用push的特点是压入一个新的页面,那么在用户点击返回时,上一个页面还可以回退,但是如果我们希望当前页面是一个替换 操作,那么可以使用replace。这个时候已经不能回退了。
router 的 go 方法(指定向前(向后)跳转几步)
router 的back 方法 (回溯历史,向后一步)
router 的forward 方法(历史中前进,向前一步)
场景:根据用户的不同权限,注册不同的路由
补充:路由的其他方法
删除路由有以下三种方式:
router.hasRoute():检查路由是否存在。
router.getRoutes():获取一个包含所有路由记录的数组。
vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航
全局的前置守卫==beforeEach
==是在导航触发时会被回调的,它有两个参数:
返回值:
场景:只有登录了的用户才能看到的页面
Vue还提供了很多的其他守卫函数,目的都是在某一个时刻给予回调,可以更好的控制程序的流程或者功能
[导航守卫](导航守卫 | Vue Router (vuejs.org))
流程:
导航被触发。
在失活的组件里调用 beforeRouteLeave 守卫。
调用全局的 beforeEach 守卫。
在重用的组件里调用 beforeRouteUpdate 守卫(2.2+)。
在路由配置里调用 beforeEnter。 解析异步路由组件。
在被激活的组件里调用 beforeRouteEnter。
Resolve 가드(2.5+) 이전에 전역을 호출합니다.
내비게이션이 확인되었습니다.
Each Hook 이후 전역을 호출하세요.
DOM 업데이트를 트리거합니다.
beforeRouteEnter 가드에서 next로 전달된 콜백 함수를 호출하면 생성된 컴포넌트 인스턴스가 콜백 함수의 매개변수로 전달됩니다.
더 많은 프로그래밍 관련 지식을 보려면 프로그래밍 소개를 방문하세요! !
위 내용은 Vue 라우팅을 자세히 설명하는 기사: vue-router의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!