当前位置:首页 > VUE

vue实现小说目录

2026-02-17 17:23:23VUE

Vue 实现小说目录功能

数据准备

小说目录通常是一个列表结构,可以通过数组形式存储章节信息。数据格式示例:

chapters: [
  { id: 1, title: "第一章 重生", content: "..." },
  { id: 2, title: "第二章 系统", content: "..." },
  // 更多章节...
]

目录列表渲染

使用 v-for 指令渲染目录列表,建议使用 <router-link> 实现章节跳转:

<ul class="chapter-list">
  <li v-for="chapter in chapters" :key="chapter.id">
    <router-link 
      :to="{ path: '/chapter', query: { id: chapter.id } }"
      @click="loadChapter(chapter.id)"
    >
      {{ chapter.title }}
    </router-link>
  </li>
</ul>

样式优化

为目录添加基础样式,增强可读性和交互性:

.chapter-list {
  padding: 0;
  list-style: none;
}
.chapter-list li {
  padding: 8px 12px;
  border-bottom: 1px solid #eee;
}
.chapter-list a {
  color: #333;
  text-decoration: none;
}
.chapter-list a:hover {
  color: #42b983;
}

章节内容加载

通过点击事件或路由参数加载对应章节内容:

methods: {
  loadChapter(id) {
    const chapter = this.chapters.find(c => c.id === id);
    this.currentChapter = chapter;
    // 或通过API请求获取内容
  }
}

路由配置

配置 Vue Router 支持章节路由:

vue实现小说目录

const routes = [
  {
    path: '/chapter',
    component: ChapterView,
    props: route => ({ id: route.query.id })
  }
]

进阶功能

  • 添加折叠/展开功能管理多卷小说
  • 实现阅读进度标记
  • 增加搜索功能快速定位章节
  • 使用虚拟滚动优化长列表性能

完整组件示例

<template>
  <div class="novel-container">
    <div class="sidebar">
      <h3>目录</h3>
      <ul class="chapter-list">
        <li v-for="chapter in chapters" :key="chapter.id">
          <a 
            href="#" 
            @click.prevent="loadChapter(chapter.id)"
            :class="{ active: currentChapter?.id === chapter.id }"
          >
            {{ chapter.title }}
          </a>
        </li>
      </ul>
    </div>
    <div class="content">
      <h2>{{ currentChapter?.title }}</h2>
      <p v-html="currentChapter?.content"></p>
    </div>
  </div>
</template>

标签: 目录小说
分享给朋友:

相关文章

css 制作目录

css 制作目录

CSS 制作目录的方法 使用 CSS 可以轻松为网页内容创建美观且功能性的目录。以下是几种常见方法: 使用 ul 和 li 创建基础目录结构 <div class="toc"> &…

vue实现小说目录

vue实现小说目录

实现小说目录的基本思路 使用Vue实现小说目录功能,主要涉及数据管理、列表渲染和交互逻辑。目录通常以章节列表形式展示,支持点击跳转对应章节内容。 数据结构设计 目录数据建议采用数组形式存储,每个章节…

vue实现层级目录

vue实现层级目录

Vue 实现层级目录的方法 使用递归组件实现层级目录 递归组件是处理层级数据的常见方式,适用于目录结构不固定或深度未知的场景。 组件代码示例: <template> <ul&…

vue实现书籍目录

vue实现书籍目录

实现书籍目录的基本思路 使用Vue实现书籍目录需要结合组件化开发思想,通过数据驱动视图的方式动态渲染目录结构。核心在于构建树形数据结构,并通过递归组件或循环嵌套实现多级目录展示。 数据准备 典型的目…

vue实现导航目录

vue实现导航目录

实现导航目录的基本思路 在Vue中实现导航目录通常涉及监听页面滚动、动态计算元素位置以及高亮当前可见的目录项。以下是具体实现方法: 使用滚动监听和动态高亮 安装依赖scrollama或类似库来简化滚…

vue3实现目录

vue3实现目录

Vue3 实现目录功能 在Vue3中实现目录功能通常涉及动态渲染页面结构、滚动监听和锚点跳转。以下是具体实现方法: 动态生成目录结构 使用ref和v-for动态渲染目录项,基于页面内容提取标题(如h…