当前位置:首页 > VUE

vue博客实现

2026-03-07 16:35:41VUE

Vue博客实现步骤

项目初始化

使用Vue CLI或Vite创建项目。Vue CLI适合传统项目,Vite适合现代快速开发环境。

npm init vue@latest my-blog
# 或
npm create vite@latest my-blog --template vue

安装必要依赖如vue-router和axios:

npm install vue-router axios

路由配置

src/router/index.js中设置路由,定义博客首页、文章详情等页面路径。

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'

const routes = [
  { path: '/', component: Home },
  { path: '/post/:id', component: () => import('../views/PostDetail.vue') }
]

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

export default router

状态管理

对于复杂状态,可使用Pinia管理博客文章数据。

vue博客实现

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

export const usePostStore = defineStore('post', {
  state: () => ({
    posts: [],
    currentPost: null
  }),
  actions: {
    async fetchPosts() {
      this.posts = await axios.get('/api/posts')
    }
  }
})

博客列表组件

创建BlogList.vue组件展示文章列表,使用v-for渲染每篇文章标题和摘要。

<template>
  <div v-for="post in posts" :key="post.id">
    <h3>{{ post.title }}</h3>
    <p>{{ post.excerpt }}</p>
    <router-link :to="'/post/' + post.id">Read More</router-link>
  </div>
</template>

<script setup>
import { usePostStore } from '@/stores/post'
const store = usePostStore()
const posts = store.posts
</script>

文章详情页

创建PostDetail.vue组件展示完整文章内容,通过路由参数获取文章ID。

vue博客实现

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

<script setup>
import { useRoute } from 'vue-router'
import { usePostStore } from '@/stores/post'

const route = useRoute()
const store = usePostStore()
const post = computed(() => store.currentPost)

onMounted(() => {
  store.fetchPost(route.params.id)
})
</script>

样式设计

使用CSS预处理器如SCSS或LESS编写样式,或采用UI框架如Element Plus、Vuetify快速搭建界面。

数据交互

通过axios与后端API通信,实现文章的获取、创建、更新和删除操作。

// api/post.js
import axios from 'axios'

export default {
  getPosts() {
    return axios.get('/api/posts')
  },
  createPost(data) {
    return axios.post('/api/posts', data)
  }
}

部署上线

构建生产环境代码并部署到服务器或静态网站托管服务。

npm run build

将生成的dist目录内容上传至服务器或Vercel、Netlify等平台。

标签: 博客vue
分享给朋友:

相关文章

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现导入

vue实现导入

Vue 实现文件导入功能 使用 <input type="file"> 元素 在 Vue 模板中添加一个文件输入元素,绑定 change 事件处理函数。 <template>…

vue实现反馈

vue实现反馈

Vue 实现反馈功能的方法 在 Vue 中实现反馈功能可以通过多种方式,包括弹窗提示、Toast 消息、表单提交等。以下是几种常见的实现方法。 弹窗反馈 使用 Vue 的组件化特性创建一个弹窗组件,…

vue列表查询实现

vue列表查询实现

实现 Vue 列表查询功能 基础列表渲染 在 Vue 中可以通过 v-for 指令实现列表渲染,结合计算属性动态过滤数据: <template> <div> &l…

vue实现tab功能

vue实现tab功能

Vue 实现 Tab 功能的方法 使用动态组件和 v-if 指令 通过 v-if 或 v-show 控制不同 Tab 内容的显示与隐藏。这种方法适合简单的 Tab 切换需求。 <tem…

vue实现答题功能

vue实现答题功能

Vue实现答题功能的基本思路 在Vue中实现答题功能通常需要以下几个核心模块:题目数据管理、用户交互处理、答题状态跟踪和结果计算。通过组件化开发可以更好地组织代码结构。 数据结构设计 答题功能的基础…