Vue中 实现上一篇下一篇的功能

2023-10-26

效果:

看下html页面

  <div class="NewsDetails_cont_footer">
    <!-- 使用三目运算符判断 按钮是否可以点击 -->
    <div @click="last" :class="lastNoShow ? 'noClick' : 'btn'">
      <img src="../assets/img/newsDetail/公共-更多2(1).png" alt="" /><span
        >上一篇:{{ lastTitle }}</span
      >
    </div>
    <!-- 使用三目运算符判断 按钮是否可以点击 -->
    <div @click="next" :class="nextNoShow ? 'noClick' : 'btn'">
      <span>下一篇:{{ nextTitle }}</span>
      <img src="../assets/img/newsDetail/公共-更多2(1).png" alt="" />
    </div>
  </div>

附上CSS

.btn {
  cursor: pointer;
}
.noClick {
  /* 不可点击 */
  pointer-events: none;
}

首先需要在data里定义变量

 data() {
    return {
      // 获取的数组,就是文章列表
      arrList: [
        {
          id: 0,
          url: require("../assets/img/youjiao/摄图网_501125646_banner_在草地上玩耍的孩子们(非企业商用)@2x.png"),
          h1: "发展数字经济 共享包容增长 为经济发展插上“数字翅膀””",
          p1: "各省、自治区、直辖市教育厅(教委)、发展改革委、工业和信息化主管部门、财政厅(局)、人力资源社会保障厅(局)、农业农村(农...",
        },
        {
          id: 1,
          url: require("../assets/img/youjiao/摄图网_501111552_banner_幼儿园老师指导画画(非企业商用).png"),
          h1: "用系统思维下好“职业教育一盘大棋”",
          p1: "党的十九届五中全会审议通过的《中共中央关于制定国民经济和社会发展第十四个五年规划和二○三五远景目标的建议》内含了多条逻辑线...",
        },
        {
          id: 2,
          url: require("../assets/img/youjiao/摄图网_501111552_banner_幼儿园老师指导画画(非企业商用).png"),
          h1: "用系统思维下好“职业教育一盘大棋2”",
          p1: "党的十九届五中全会审议通过的《中共中央关于制定国民经济和社会发展第十四个五年规划和二○三五远景目标的建议》内含了多条逻辑线...",
        },
        {
          id: 3,
          url: require("../assets/img/youjiao/摄图网_501111552_banner_幼儿园老师指导画画(非企业商用).png"),
          h1: "用系统思维下好“职业教育一盘大棋”",
          p1: "党的十九届五中全会审议通过的《中共中央关于制定国民经济和社会发展第十四个五年规划和二○三五远景目标的建议》内含了多条逻辑线...",
        },
        {
          id: 4,
          url: require("../assets/img/youjiao/摄图网_501111552_banner_幼儿园老师指导画画(非企业商用).png"),
          h1: "用系统思维下好“职业教育一盘大棋”",
          p1: "党的十九届五中全会审议通过的《中共中央关于制定国民经济和社会发展第十四个五年规划和二○三五远景目标的建议》内含了多条逻辑线...",
        },
      ],
      //上一个显示的标题内容
      lastTitle: "",
      //下一个显示的标题内容
      nextTitle: "",
      //下一个的ID 用于跳转页面
      nextId: "",
      //上一个的ID 用于跳转页面
      lastId: "",
      // 控制按钮是否可以点击
      lastNoShow: "",
      nextNoShow: "",
    };
  },

methods获取文章列表的函数

  methods: {
    getAllList() {
      // 我这是把这个给变成子组件了 获取你文章的ID 用来进行匹配当前的页面
      //   父组件写了什么可以看文章下面
      let id = this.$parent.artcleID;

      //  使用ForEach遍历数组 进行当前页面的判断
      this.arrList.forEach((item, index) => {
        // 如果我们父组件里定义的id 等于 index了 就相当找到当前的页面了
        if (index == id) {
          // 在这个里面再进行判断 目的是为了 当文章列表里没有内容了的时候
         
          
          if (index >= length - 1) {
             // 把 下一篇 按钮的内容变成 无      
            this.nextTitle = "无";
            //然后把这个nextNoShow 禁止点击的 变量的值变成true
             // 这样三目运算符就可以加结果为True的 class类名了 就是禁止点击了
            this.nextNoShow = true;
            // 这个 else 是 当你文章里还有内容 执行下面的操作
          } else {
            // 改变你下一篇标题显示的内容 为 下个index里显示的标题
            this.nextTitle = this.arrList[index + 1].h1;
            // 把nextID 的值也变成下个index 里 id的值 为了进行页面的跳转
            this.nextId = this.arrList[index + 1].id;
            // 把下一篇变成可以点击的状态,因为这个else里 下一篇还有内容
            this.nextNoShow = false;
          }
          //   这个和上面一样
          if (index == 0) {
            this.lastTitle = "无";
            this.lastNoShow = true;
          } else {
            this.lastTitle = this.arrList[index - 1].h1;
            this.lastId = this.arrList[index - 1].id;
            this.lastNoShow = false;
          }
        }
      });
    },
    //点击上一篇文章时;
    last() {
      this.$router.push({
        // 拼接 lastID 和我们定义的这个地址,就能实现跳转了
        path: "/newsxiangqing" + this.lastId,
      });
    },
    //点击下一篇文章时
    next() {
      this.$router.push({
        path: "/newsxiangqing" + this.nextId,
      });
    },
  },

函数需要在页面创建前执行

//页面创建前执行一下这个函数
  created() {
    this.getAllList();
  },

我用的时候是把这个功能变成了子组件,下面是我父组件写的变量

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue中 实现上一篇下一篇的功能 的相关文章

随机推荐

  • 内核体系结构和编译体系分析

    1 Linux操作系统体系结构 1 操作系统可以分为两个层次 内核空间和用户空间 内核和用户空间使用不同的保护地址空间 内核不能将用户空间传递的地址进行直接的操作 需要先转换 2 系统调用 内核空间管理设备资源 应用程序通过内核提供的内核调
  • 米家接入HomeKit系列三:HomeAssistant接入米家网关

    系列文章 米家接入HomeKit系列一 接入基本原理与开篇 米家接入HomeKit系列二 通过群辉NAS的Docker搭建HomeAssistant 米家接入HomeKit系列三 HomeAssistant接入米家网关 米家接入HomeKi
  • 微信小程序--web-view--h5返回微信小程序

    1 配置微信小程序 web view 记得配置业务域名 微信公众平台配置业务域名 上线需要 1 1 建议微信小程序里单独用一个页面打开
  • debug

    1 在DOS提示符下 进入Debug程序 2 详细记录每一步所用的命令 以及查看结果的方法和具体结果 3 现有一个双字加法源程序如下 其中存在错误 现假设已汇编 连结生成了可执行文件HB EXE 存放在d MASM目录下 请使用Debug对
  • argmax与max的区别

    y max f x 表示y是函数f x 的最大值 y argmax f x 表示y为函数f x 取得最大值时 参数x的值 例 f x x3 x的取值范围是 0 1 2 3 y max f x 27 y argmax f x 3
  • AcWing 907. 区间覆盖 贪心

    AcWing 907 区间覆盖 给定N个闭区间 ai bi 以及一个线段区间 s t 请你选择尽量少的区间 将指定线段区间完全覆盖 输出最少区间数 如果无法完全覆盖则输出 1 输入格式 第一行包含两个整数s和t 表示给定线段区间的两个端点
  • 数据分析中的统计与机器学习应用

    1 数据分析应用场景 数据分析场景 例如逛淘宝 后台一般会从以下几个方面对用户数据进行分析来 了解的一个产品的数据模型 1 Acquisition 获取用户 运营一件产品首先就需要获取用户 也就是推广 运营人员要分析自己产品的特性以及想要推
  • 一文看懂PCB助焊层跟阻焊层的区别与作用

    一文看懂PCB助焊层跟阻焊层的区别与作用 PCBworld 今天 阻焊层简介 阻焊盘就是soldermask 是指板子上要上绿油的部分 实际上这阻焊层使用的是负片输出 所以在阻焊层的形状映射到板子上以后 并不是上了绿油阻焊 反而是露出了铜皮
  • zookeeper 搭建集群

    待完善
  • 《计算机文化基础》22-23第一学期后十周教学计划(中国铁道出版社第三版)

    课程 任课教师 授课班级 编制时间 计算机文化基础 2022 10 28 授课日期 2022年 10月31日至 2022年 12月 16日 本课程总课时 28课时 已授课时 0 课时 尚余课时 28课时 本学期授课周 7周 本学期周课时 4
  • 超详细讲解!Android面试题集2021版,面试心得体会

    前言 Android常用知识体系是什么鬼 所谓常用知识体系 就是指对项目中重复使用率较高的功能点进行梳理 注意哦 不是Android知识体系 古语道 学而不思则罔 思而不学则殆 如果将做项目类比为 学 那么整理就可以类比为 思 在做项目过程
  • 文件包含漏洞

    一 文件包含函数 将外部文件的内容引入当前环境 include
  • 玩转Kali之初始化系统

    文章目录 下载镜像 安装系统 修改root密码 配置APT国内源 更新软件包 下载镜像 1 打开kali官网 https www kali org 安装系统 1 打开VirtualBox 2 选择新建虚拟机 1 输入虚拟机名称 2 选择安装
  • TopK问题的三种解法

    TopK问题是指从n个数据中取前K个数据 在生活中的应用也有很多 如游戏中xxx的排行榜前10名等 在这篇博客中我将主要利用堆去解决TopK问题 堆排序 首先我们需要建一个堆 然后我们再进行堆排序 排好序后直接取前K个就可以了 需要注意的是
  • Debian10iptables放行语法

    文章目录 1 基本语法 2 修改默认规则 3 实例 4 易错总结 1 基本语法 iptables A 链 匹配条件 j 动作 D 删除 p 协议 ACCEPT 放行 s 源ip地址 DROP 丢弃 d 目的ip地址 REJECT 拒绝 sp
  • java.util.EnumSet complementOf (EnumSet<E> s)方法具有什么功能呢?

    转自 java util EnumSet complementOf EnumSet lt E gt s 方法具有什么功能呢 下文笔者讲述EnumSet complementOf方法的功能简介说明 如下所示 EnumSet complemen
  • To Java程序员:切勿用普通for循环遍历LinkedList

    ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说 可能平时使用得最多的List就是ArrayList 对于ArrayList的遍历 一般用如下写法 public static void mai
  • 余弦定理实现新闻自动分类算法

    前言 余弦定理 这个在初中课本中就出现过的公式 恐怕没有人不知道的吧 但是另外一个概念 可能不是很多的人会听说过 他叫空间向量 一般用e表示 高中课本中有专门讲过这个东西 有了余弦定理和向量空间 我们就可以做许多有意思的事情了 利用余弦定理
  • Spring框架(三)Spring注解和获取Bean对象详解

    目录 一 什么是基于Java的Spring注解配置 具体注解的例子 二 更好的将Bean存储在Spring中 1 前置工作 在配置文件中设置Bean根路径 2 添加注解存储Bean对象 2 1 Controller 控制器存储 2 2 Se
  • Vue中 实现上一篇下一篇的功能

    效果 看下html页面 div class NewsDetails cont footer div img src assets img newsDetail 公共 更多2 1 png alt span 上一篇 lastTitle span