登陸與註冊功能都已經實現,如今是時候來開發文章編輯功能了。javascript
這裏我們就使用 markdown
做爲編輯語言吧,簡潔通用。那麼咱們就須要找一下 markdown
的編輯器組件了,並且還要支持 vue
噢。css
若羽這裏找到的一個是 mavonEditor
,在 github 上有2k+ 的 star。文檔也都是中文的,比較友好。html
首先來安裝一下編輯器:java
npm install mavon-editor --saveios
而後在 main.js
中引入組件:git
import Vue from 'vue' import App from './App.vue' import router from './router' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' import mavonEditor from 'mavon-editor' import 'mavon-editor/dist/css/index.css' Vue.config.productionTip = false Vue.use(ElementUI) Vue.use(mavonEditor) new Vue({ router, render: h => h(App) }).$mount('#app')
接下來新建咱們的編輯組件了,Edit.vue
:github
<template> <div></div> </template> <script> export default { name: "Edit" } </script> <style scoped> </style>
而後爲它添加路由對象:npm
{ path: '/edit', name: 'edit', component: () => import('./views/Edit.vue') }
首先一篇文章有哪些要素:element-ui
最基本是須要這兩個要素的。
data
中定義這兩個要素:
data() { return { model: { title: '', content: '', } } }
在佈局上咱們依舊延續以前的簡約風,使用 ElementUI
進行佈局。但這裏咱們不居中了,直接填滿全屏就好。
代碼:
<template> <div> <el-row> <el-form> <el-form-item label="文章標題"> <el-col :span="6"> <el-input v-model="model.title"></el-input> </el-col> </el-form-item> <el-form-item> <el-col> <mavon-editor v-model="model.content"></mavon-editor> </el-col> </el-form-item> <el-form-item> <el-col> <el-button type="primary" size="small" @click="submit">發表</el-button> </el-col> </el-form-item> </el-form> </el-row> </div> </template> <script> import axios from 'axios' export default { name: "Edit", data() { return { model: { title: '', content: '', } } }, methods: { submit() { axios.post('https://451ece6c-f618-436b-b4a2-517c6b2da400.mock.pstmn.io/publish', this.model) .then(res => { if(res.data.Code === 200) { this.$message.success('發佈成功'); } }) } } } </script>
效果以下:
這個頁面也還確實了一部分功能,在發佈完成後,應該是要跳轉到文章列表的頁面去查看全部的文章。
由於列表頁面尚未作,因此這裏暫時先挖個坑放着~
本篇博文使用了第三方組件,也是在演示如何使用第三方組件來爲本身提升開發效率,畢竟不可能全部的東西都本身來從0實現,那多累,還不必定能保證完善。部分第三方組件沒法知足的功能就能夠考慮本身來實現了。