当前位置:首页 > VUE

vue实现小说目录

2026-02-17 17:23:23VUE

Vue 实现小说目录功能

数据准备

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

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

目录列表渲染

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

vue实现小说目录

<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>

样式优化

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

vue实现小说目录

.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 支持章节路由:

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>

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

相关文章

vue实现目录列表

vue实现目录列表

实现目录列表的基本思路 在Vue中实现目录列表通常涉及动态渲染嵌套结构的数据,结合递归组件或v-for循环处理层级关系。以下是两种常见实现方式: 方法一:使用递归组件 递归组件适合处理未知深度的嵌套…

vue实现章节目录

vue实现章节目录

实现章节目录的基本思路 在Vue中实现章节目录功能,通常需要结合数据驱动和组件化思想。核心是通过数据管理章节结构,利用递归组件或动态渲染实现目录层级展示。 数据结构设计 建议使用嵌套结构存储章节信…

react实现目录

react实现目录

React 实现目录的方法 使用 React 组件和状态管理 创建一个目录组件,通过状态管理来跟踪当前选中的目录项。可以使用 useState 钩子来管理状态。 import React, { us…

css制作目录

css制作目录

CSS 制作目录的方法 使用 CSS 可以创建一个美观且功能性的目录(TOC),以下是几种常见方法: 使用无序列表和样式 通过 <ul> 和 <li> 标签创建目录结构…

php实现小说

php实现小说

PHP实现小说网站的基本功能 使用PHP构建小说网站需要实现用户管理、章节发布、阅读界面等核心功能。以下是关键实现步骤: 数据库设计 创建数据库表结构存储小说信息: CREATE TABLE…

js实现文件目录选择

js实现文件目录选择

使用 <input type="file"> 实现文件选择 通过 HTML 的 input 元素配合 webkitdirectory 属性(非标准但主流浏览器支持)实现目录选择: &…