Vue3.0实现todolist之跳转路由(常用的push,back,go等方法)

简介: Vue3.0实现todolist之跳转路由(常用的push,back,go等方法)

在home.vue里面

写一个button按钮

点击按钮 实现从首页跳转到about的界面

<button @click="goto">跳转路由</button>

这里需要从vue-router引入一个useRouter 函数(新增概念,在vue3里面以use开头的函数为hooks函数)

import { useRouter } from "vue-router";

useRouter 函数会返回一个router对象 这是一个全局路由对象 里面会包含很多方法

可以打印出来看一下

//router是全局路由对象
    let router = useRouter();
  console.log(router);

这里可以看见我们最常用的push的方法

push函数里面可以直接传入跳转的路径

router.push("/about");

也可以传入对象参数

router.push({
        path: "/about",
      });

home.vue

<template>
  <div>
    <nav-header></nav-header>
    <nav-main></nav-main>
    <nav-footer></nav-footer>
    <button @click="goto">跳转路由</button>
  </div>
</template>
<script>
import { defineComponent, ref, computed } from "vue";
import { useStore } from "vuex";
import { useRouter } from "vue-router";
export default defineComponent({
  name: "Home",
  props: {},
  components: {
  },
  setup() {
    //router是全局路由对象
    let router = useRouter();
    console.log(router);
    let goto = () => {
      //跳转路由
      //push函数里面可以直接传入跳转的路径
      //router.push("/about");
      //back回退到上一页
      //forward:去到下一页
      //go(整数) 整数代表前进  负数代表后退
      router.push({
        path: "/about",
      });
    };
    return {
      goto,
    };
  },
});
</script>
<style></style>

在about里面 可以回到上一页

<template>
  <div>我是about界面</div>
  <div>
    <button @click="back">回到首页</button>
  </div>
</template>
<script>
import { defineComponent } from "vue";
import { useRouter } from "vue-router";
export default defineComponent({
  name: "About",
  setup() {
    //router是全局路由对象
    let router = useRouter();
    console.log(router);
    let back = () => {
      router.back();
    };
    return {
      back,
    };
  },
});
</script>
<style scoped></style>

这里的

router.back();

也可以使用

router.go(-1);

写一个开始页 Start

作为首页

在首页点击按钮 开始任务 会

跳转到home的界面

<template>
  <div>
    <button @click="start">开始任务</button>
  </div>
</template>
<script>
import { defineComponent } from "vue";
import { useRouter } from "vue-router";
export default defineComponent({
  name: "Start",
  setup() {
    //router是全局路由对象
    let router = useRouter();
    console.log(router);
    let start = () => {
      router.push({
        path: "/home",
      });
    };
    return {
      start,
    };
  },
});
</script>
<style scoped></style>

在router/index.js里面进行配置 将start配置成首页

import {
  createRouter,
  createWebHashHistory,
  createWebHistory,
} from "vue-router";
// 1. 定义路由组件, 注意,这里一定要使用 文件的全名(包含文件后缀名)
import Start from "../views/Start.vue";
// import About from "../views/About.vue";
// import Home from "../views/Home.vue";
// 2. 定义路由配置
const routes = [
  {
    path: "/",
    name: "Start",
    component: Start,
  },
  {
    path: "/home",
    name: "Home",
    // component: Home,
    component: () => import("../views/Home.vue"),
  },
  {
    path: "/about",
    name: "About",
    //component: About,
    //按需引入:把component写成箭头函数的形式,然后return通过import的方式引入组件的相对路径
    //如果没有访问这个路径,就不会加载这个组件,实际上为了节约性能
    component: () => import("../views/About.vue"),
  },
];
// 3. 创建路由实例
const router = createRouter({
  // 4. 采用hash 模式
  //  history: createWebHashHistory(),
  // 采用 history 模式
  history: createWebHistory(),
  routes, // short for `routes: routes`
});
export default router;
相关文章
|
7天前
|
JavaScript
【vue】如何跳转路由到指定页面位置
【vue】如何跳转路由到指定页面位置
19 0
|
7天前
|
JavaScript
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
46 0
|
7天前
|
资源调度 JavaScript 前端开发
Vue的路由管理:VueRouter的配置和使用
【4月更文挑战第24天】VueRouter是Vue.js的官方路由管理器,用于在单页面应用中管理URL路径与组件的映射。通过安装并引入VueRouter,设置路由规则和创建router实例,可以实现不同路径下显示不同组件。主要组件包括:`&lt;router-link&gt;`用于创建导航链接,`&lt;router-view&gt;`负责渲染当前路由对应的组件。此外,VueRouter还支持编程式导航和各种高级特性,如嵌套路由、路由参数和守卫,以应对复杂路由场景。
|
7天前
|
JavaScript 数据可视化 算法
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
vue3+threejs可视化项目——搭建vue3+ts+antd路由布局(第一步)
38 6
|
5天前
|
资源调度 JavaScript 前端开发
阿珊详解Vue路由的两种模式:hash模式与history模式
阿珊详解Vue路由的两种模式:hash模式与history模式
|
7天前
|
JavaScript
vue中watch监听路由传来的参数变化问题
vue中watch监听路由传来的参数变化问题
8 0
|
7天前
|
缓存 JavaScript
在 Vue 组件中使用计算属性和侦听器来响应路由变化
【5月更文挑战第8天】Vue Router 中,计算属性和侦听器常用于根据路由变化更新组件状态。计算属性缓存依赖,当路由参数改变时自动更新,如示例中的 `userId`。侦听器则监听 `$route` 变化,执行相应操作,例如在 `currentUserId` 示例中响应 `userId` 更新。计算属性适合简单变化,而异步操作或复杂场景可选用侦听器。Vue 3 中,`watchEffect` 减少了部分侦听场景的复杂性。总之,它们用于组件内部响应路由变化,而非直接处理路由逻辑。
20 4
|
7天前
|
中间件 Go
【Go语言专栏】Go语言中的中间件与路由处理
【4月更文挑战第30天】本文探讨了Go语言中的路由和中间件处理。路由负责根据URL映射到处理器,`net/http`包提供基础支持,而Gin和Echo等第三方库则提供更强大功能。中间件在请求处理链中执行预处理任务,如日志记录和认证。`net/http`包通过嵌套处理器实现中间件,而Gin和Echo则有更简洁的中间件接口。通过路由和中间件,可构建高效、结构良好的Web应用。建议进一步阅读官方文档以深化理解。
|
7天前
|
存储 Go 开发者
【Go语言专栏】Go语言中的结构体与方法
【4月更文挑战第30天】Go语言中的结构体是聚合数据类型,用于自定义复杂类型。通过`type`和`struct`关键字定义结构体,包含多个不同类型的字段。结构体实例化后,使用点操作符访问字段。方法为结构体添加行为,定义时需指定接收者(值或指针)。方法调用同样使用点操作符。匿名结构体无需命名,嵌套结构体可构建复杂数据结构。选择值或指针接收者取决于是否需要修改结构体状态。理解并熟练运用结构体和方法是编写高效Go代码的关键。
|
7天前
|
资源调度 JavaScript 前端开发
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程
【vue】vue中的路由vue-router,vue-cli脚手架详细使用教程