当前位置:首页 > VUE

vue文章列表详情实现

2026-02-24 02:42:03VUE

Vue 文章列表与详情页实现

路由配置

router/index.js 中配置动态路由,实现列表到详页的跳转:

const routes = [
  {
    path: '/articles',
    component: () => import('@/views/ArticleList.vue')
  },
  {
    path: '/articles/:id',
    component: () => import('@/views/ArticleDetail.vue'),
    props: true
  }
]

文章列表组件

使用 v-for 渲染列表数据,通过 router-link 实现跳转:

vue文章列表详情实现

<template>
  <div>
    <div v-for="article in articles" :key="article.id">
      <router-link :to="'/articles/' + article.id">
        <h3>{{ article.title }}</h3>
      </router-link>
      <p>{{ article.summary }}</p>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      articles: [
        { id: 1, title: 'Vue入门', summary: 'Vue基础知识介绍' },
        { id: 2, title: 'Vue路由', summary: 'Vue Router使用指南' }
      ]
    }
  }
}
</script>

文章详情组件

通过路由参数 id 获取对应文章内容:

<template>
  <div v-if="article">
    <h2>{{ article.title }}</h2>
    <div>{{ article.content }}</div>
  </div>
</template>

<script>
export default {
  props: ['id'],
  data() {
    return {
      article: null
    }
  },
  created() {
    this.fetchArticle()
  },
  methods: {
    fetchArticle() {
      // 模拟API请求
      const articles = [
        { id: 1, title: 'Vue入门', content: '这里是详细内容...' },
        { id: 2, title: 'Vue路由', content: '这里是详细内容...' }
      ]
      this.article = articles.find(item => item.id === Number(this.id))
    }
  }
}
</script>

数据请求优化

使用 Axios 从后端 API 获取数据:

vue文章列表详情实现

import axios from 'axios'

methods: {
  async fetchArticles() {
    try {
      const res = await axios.get('/api/articles')
      this.articles = res.data
    } catch (error) {
      console.error(error)
    }
  }
}

状态管理(可选)

对于大型应用,可使用 Vuex 管理文章状态:

// store/modules/articles.js
const actions = {
  async fetchArticles({ commit }) {
    const res = await axios.get('/api/articles')
    commit('SET_ARTICLES', res.data)
  }
}

样式优化

添加过渡效果提升用户体验:

.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}
.fade-enter, .fade-leave-to {
  opacity: 0;
}

分享给朋友:

相关文章

vue实现商品详情功能

vue实现商品详情功能

商品详情页基础结构 使用Vue单文件组件构建商品详情页的基本框架,包含标题、图片轮播、价格、规格选择等核心区域: <template> <div class="product-…

vue教程实现商品详情

vue教程实现商品详情

Vue 实现商品详情页的步骤 数据准备与组件结构 商品详情页通常需要展示商品图片、名称、价格、描述等信息。创建一个Vue组件,命名为ProductDetail.vue,并定义数据结构。可以使用prop…

淘宝详情css制作

淘宝详情css制作

淘宝详情页CSS制作要点 淘宝详情页的CSS制作需要遵循平台规范,同时注重响应式设计和用户体验。以下是关键要点: 结构布局 使用Flexbox或Grid布局实现灵活的页面结构,确保在不同设备上都能…

php实现详情页面分页

php实现详情页面分页

PHP实现详情页面分页 在PHP中实现详情页面的分页功能,通常涉及数据库查询、分页逻辑处理和前端展示。以下是具体实现方法: 数据库查询与分页逻辑 构建SQL查询时使用LIMIT和OFFSET实现分…

vue实现详情

vue实现详情

Vue 实现详情页面的方法 使用动态路由获取详情数据 在 Vue 项目中,可以通过动态路由来传递参数,从而获取详情页面的数据。在路由配置中定义动态参数: // router/index.js {…

react详情如何展示

react详情如何展示

展示React详情的实现方法 在React中展示详情内容通常涉及状态管理、条件渲染和组件设计。以下是几种常见的方法: 使用useState管理详情状态 通过React的useState钩子管理详情…