当前位置:首页 > 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 获取新闻数据并渲染为列表,支持分页或无限滚动。

<!-- 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 管理全局状态,如用户收藏、新闻分类等。

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

vue实现新闻类网站

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

相关文章

vue实现网站

vue实现网站

Vue.js 实现网站的基本步骤 Vue.js 是一个渐进式 JavaScript 框架,适合构建用户界面和单页应用(SPA)。以下是实现网站的基本流程。 环境准备 安装 Node.js 和 npm…

VUE网站案例实现

VUE网站案例实现

VUE网站案例实现方法 基础项目搭建 使用Vue CLI创建新项目,安装必要依赖: npm install -g @vue/cli vue create vue-website cd vue-web…

用vue实现新闻更新

用vue实现新闻更新

使用Vue实现新闻更新功能 搭建基础结构 安装Vue和相关依赖,创建项目结构。使用Vue CLI快速初始化项目: vue create news-app cd news-app npm insta…

vue结合element实现网站

vue结合element实现网站

Vue 结合 Element UI 实现网站 Vue 是一个流行的前端框架,Element UI 是基于 Vue 的组件库,提供了丰富的 UI 组件,适合快速构建企业级中后台网站。以下是实现的基本步骤…

vue实现新闻浏览编辑

vue实现新闻浏览编辑

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

react h5网站如何真机测试

react h5网站如何真机测试

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