当前位置:首页 > 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管理博客文章数据。

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

<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)
  }
}

部署上线

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

vue博客实现

npm run build

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

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

相关文章

vue实现防抖节流

vue实现防抖节流

Vue 中实现防抖(Debounce) 防抖的核心是延迟执行函数,在连续触发时取消前一次的调用,只执行最后一次。适用于输入框搜索、窗口大小调整等场景。 方法1:使用 Lodash 的 _.debou…

jq 实现 vue

jq 实现 vue

jq 实现 Vue 的核心功能 jq 是一个轻量级的 JavaScript 库,主要用于 DOM 操作和事件处理。虽然它不能完全替代 Vue,但可以通过一些技巧模拟 Vue 的核心功能,如数据绑定、事…

vue权限实现

vue权限实现

Vue 权限实现方案 基于路由的权限控制 通过路由守卫实现权限验证,在路由配置中添加meta字段标记权限要求。在router.beforeEach中检查用户权限与路由要求的匹配情况。 // rout…

vue observer实现

vue observer实现

Vue Observer 实现原理 Vue 的响应式系统核心是通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现的 Observer 模式。以下是关键实现细…

vue实现mui

vue实现mui

使用 Vue 实现 MUI(Material-UI)风格的界面 Vue 本身不直接提供 MUI(Material Design)组件,但可以通过集成第三方库或手动实现来达到类似效果。以下是几种常见方法…

vue实现选人

vue实现选人

实现选人功能的基本思路 在Vue中实现选人功能通常涉及以下核心环节:数据绑定、用户交互处理、状态管理以及界面渲染。以下是具体实现方法: 数据准备与组件结构 创建包含人员信息的数组,通常从API获取或…