当前位置:首页 > VUE

vue实现新闻类网站

2026-02-24 17:46:29VUE

使用 Vue 实现新闻类网站

项目初始化

使用 Vue CLI 或 Vite 快速初始化项目,安装必要的依赖(如 Vue Router、Axios)。Vue 3 推荐使用 Composition API 开发。

npm create vue@latest news-website
cd news-website
npm install vue-router axios

路由配置

通过 Vue Router 实现页面导航,配置新闻列表、详情页等路由。

// router/index.js
import { createRouter, createWebHistory } from 'vue-router'
import NewsList from '../views/NewsList.vue'
import NewsDetail from '../views/NewsDetail.vue'

const routes = [
  { path: '/', component: NewsList },
  { path: '/news/:id', component: NewsDetail }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

新闻列表页

使用 Axios 获取新闻数据并渲染为列表,支持分页或无限滚动。

vue实现新闻类网站

<!-- views/NewsList.vue -->
<template>
  <div v-for="news in newsList" :key="news.id">
    <router-link :to="`/news/${news.id}`">{{ news.title }}</router-link>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'

const newsList = ref([])

onMounted(async () => {
  const response = await axios.get('https://api.example.com/news')
  newsList.value = response.data
})
</script>

新闻详情页

通过路由参数获取新闻 ID,动态加载对应内容。

<!-- views/NewsDetail.vue -->
<template>
  <h1>{{ news.title }}</h1>
  <div v-html="news.content"></div>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import axios from 'axios'

const route = useRoute()
const news = ref({})

onMounted(async () => {
  const response = await axios.get(`https://api.example.com/news/${route.params.id}`)
  news.value = response.data
})
</script>

状态管理

复杂场景可使用 Pinia 管理全局状态,如用户收藏、新闻分类等。

vue实现新闻类网站

// stores/news.js
import { defineStore } from 'pinia'

export const useNewsStore = defineStore('news', {
  state: () => ({
    categories: []
  }),
  actions: {
    async fetchCategories() {
      const res = await axios.get('/api/categories')
      this.categories = res.data
    }
  }
})

响应式设计

通过 CSS Flex/Grid 或 UI 库(如 Element Plus)实现多端适配。

<template>
  <el-row :gutter="20">
    <el-col :md="8" v-for="news in newsList" :key="news.id">
      <news-card :news="news" />
    </el-col>
  </el-row>
</template>

性能优化

  • 使用 v-lazy 实现图片懒加载
  • 路由级代码分割
  • 数据缓存策略
// 路由懒加载
const NewsDetail = () => import('../views/NewsDetail.vue')

部署上线

构建生产环境代码并部署到静态托管服务(如 Vercel、Netlify)。

npm run build

标签: 新闻网站
分享给朋友:

相关文章

php实现网站查询功能实现的

php实现网站查询功能实现的

PHP实现网站查询功能的方法 数据库连接与配置 使用PDO或mysqli扩展连接数据库,确保安全性。示例代码: $host = 'localhost'; $dbname = 'database_na…

vue实现书籍网站

vue实现书籍网站

Vue 实现书籍网站的关键步骤 项目初始化与基础配置 使用 Vue CLI 或 Vite 创建项目,安装 Vue Router 管理路由,Vuex/Pinia 管理状态(如购物车、用户信息)。引入 U…

vue实现新闻编辑页

vue实现新闻编辑页

Vue 新闻编辑页实现步骤 基础项目搭建 使用 Vue CLI 或 Vite 创建项目,安装必要依赖: npm install vue-router axios quill 路由配置 在 route…

vue实现新闻浏览编辑

vue实现新闻浏览编辑

Vue 实现新闻浏览编辑功能 项目结构搭建 使用 Vue CLI 快速初始化项目,安装必要依赖如 vue-router 和 axios。创建以下核心目录: src/views/ 存放新闻列表和编辑页…

基于vue网站实现原理

基于vue网站实现原理

Vue 网站实现原理 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心原理包括数据驱动、组件化和虚拟 DOM。 数据驱动与响应式系统 Vue 的核心是响应式系统,通过…

react h5网站如何真机测试

react h5网站如何真机测试

使用 Chrome 远程调试(Android) 确保手机和电脑在同一局域网,打开手机开发者选项中的 USB 调试 和 USB 安装。通过 USB 连接电脑,在 Chrome 浏览器地址栏输入 chro…