当前位置:首页 > VUE

vue实现小说目录

2026-03-09 05:54:22VUE

Vue 实现小说目录的方法

数据准备

需要准备小说章节数据,通常是一个数组,每个元素包含章节标题和内容。数据结构可以如下:

chapters: [
  { title: "第一章", content: "..." },
  { title: "第二章", content: "..." }
]

目录组件

创建一个目录组件,用于显示所有章节标题。使用 v-for 遍历章节数据:

vue实现小说目录

<template>
  <div class="catalog">
    <ul>
      <li v-for="(chapter, index) in chapters" :key="index">
        <a @click="selectChapter(index)">{{ chapter.title }}</a>
      </li>
    </ul>
  </div>
</template>

章节选择功能

在目录组件中添加方法,处理章节选择事件,并通知父组件:

methods: {
  selectChapter(index) {
    this.$emit('chapter-selected', index);
  }
}

内容显示组件

创建内容显示组件,接收当前章节索引并显示对应内容:

vue实现小说目录

<template>
  <div class="content">
    <h2>{{ currentChapter.title }}</h2>
    <p>{{ currentChapter.content }}</p>
  </div>
</template>

<script>
export default {
  props: ['chapters', 'currentIndex'],
  computed: {
    currentChapter() {
      return this.chapters[this.currentIndex];
    }
  }
}
</script>

父组件整合

在父组件中整合目录和内容显示,管理当前章节索引:

<template>
  <div class="reader">
    <Catalog :chapters="chapters" @chapter-selected="changeChapter" />
    <Content :chapters="chapters" :current-index="currentIndex" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      chapters: [...],
      currentIndex: 0
    }
  },
  methods: {
    changeChapter(index) {
      this.currentIndex = index;
    }
  }
}
</script>

样式优化

添加基础样式改善用户体验:

.catalog {
  width: 200px;
  float: left;
}
.catalog ul {
  list-style: none;
  padding: 0;
}
.catalog li a {
  cursor: pointer;
  padding: 5px;
  display: block;
}
.catalog li a:hover {
  background-color: #f0f0f0;
}
.content {
  margin-left: 220px;
}

进阶功能

  1. 添加滚动定位:在内容组件中使用 refscrollIntoView 实现平滑滚动
  2. 阅读进度保存:使用 localStorage 记录当前阅读章节
  3. 响应式设计:通过媒体查询适配移动设备

这种实现方式保持了组件间的松耦合,便于维护和扩展。目录组件只负责显示和触发事件,内容组件专注展示,父组件管理状态。

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

相关文章

css 制作目录

css 制作目录

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

css 制作目录

css 制作目录

使用CSS制作目录的方法 CSS可以用于创建美观且结构清晰的目录,以下是几种常见的方法: 使用无序列表(ul)和样式化 通过无序列表创建目录结构,再利用CSS进行美化: <div class…

vue实现书籍目录

vue实现书籍目录

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

vue实现目录列表

vue实现目录列表

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

vue实现树形目录

vue实现树形目录

Vue 实现树形目录的方法 递归组件实现 递归组件是Vue中实现树形结构的常见方法,通过组件调用自身实现无限层级嵌套。 <template> <ul> <l…

vue实现小说翻页

vue实现小说翻页

Vue实现小说翻页功能 实现小说翻页功能通常需要处理文本分页、翻页动画和用户交互。以下是基于Vue的实现方案: 文本分页处理 需要将长文本分割成适合页面显示的段落。可以使用计算属性或方法动态分割文本…