前端部落格專案搭建(4) 部落格編輯發表頁面 以及最終收尾
阿新 • • 發佈:2021-08-31
前端部落格專案搭建(4) 部落格編輯發表頁面 以及最終收尾
安裝mavon-editor
基於Vue的markdown編輯器mavon-editor
輸入命令cnpm install mavon-editor --save
安裝
然後在main.js中全域性註冊:
// 全域性註冊
import Vue from 'vue'
import mavonEditor from 'mavon-editor'
import 'mavon-editor/dist/css/index.css'
// use
Vue.use(mavonEditor)
然後就可以在需要渲染的地方使用:
views\BlogDetail.vue
<template> <div class="m-container"> <Header></Header> <div class="mblog"> <h2>{{ blog.title }}</h2> <el-link icon="el-icon-edit" v-if="ownBlog"><router-link :to="{name: 'BlogEdit', params: {blogId: blog.id}}">編輯</router-link></el-link> <el-divider></el-divider> <div class="content markdown-body" v-html="blog.content"></div> </div> </div> </template> <script> import 'github-markdown-css/github-markdown.css' // 然後新增樣式markdown-body import Header from "@/components/Header"; export default { name: "BlogDetail", components: { Header }, data() { return { blog: { userId: null, title: "", description: "", content: "" }, ownBlog: false } }, methods: { getBlog() { const blogId = this.$route.params.blogId const _this = this this.$axios.get('/blog/' + blogId).then((res) => { console.log(res) console.log(res.data.data) _this.blog = res.data.data var MarkdownIt = require('markdown-it'), md = new MarkdownIt(); var result = md.render(_this.blog.content); _this.blog.content = result // 判斷是否是自己的文章,能否編輯 _this.ownBlog = (_this.blog.userId === _this.$store.getters.getUser.id) }); } }, created() { this.getBlog() } } </script>