Vue.js 框架源码与进阶 - NuxtJS案例 - Realworld项目 - 文章/发布部署

11.5 文章详情

展示基本信息

在这里插入图片描述

请求方法:GET

请求地址:/api/articles/:slug

api/article.js

// 获取文章详情
export const getArticle = slug => {
   
  return request({
   
    method: 'GET',
    url: `/api/articles/${
     slug}`
  })
}

pages/article/index.vue

import {
    getArticles } from '@/api/article'

export default {
   
  name: 'ArticleIndex',
  async asyncData ({
    params }) {
   
    const {
    data } = await getArticles(params.slug)
    console.log(data)
  }
}

在这里插入图片描述

export default {
   
  name: 'ArticleIndex',
  async asyncData ({
    params }) {
   
    const {
    data } = await getArticles(params.slug)
    return {
   
      article: data.article
    }
  }
}
<h1>{
   {
    article.title }}</h1>

...
<div class="row article-content">
  <div class="col-md-12">{
   {
    article.body }}</div>
</div>

在这里插入图片描述

把Markdown转为HTML

markdown-it:将Markdown文档转换为Html

npm install markdown-it --save

在文章的详情页面加载包pages/article/index.vue

import MarkdownIt from 'markdown-it'

export default {
   
  name: 'ArticleIndex',
  async asyncData ({
    params }) {
   
    const {
    data } = await getArticle(params.slug)
    const {
    article } = data
    const md = new MarkdownIt
    article.body = md.render(article.body)
    return {
   
      article: article
    }
  }
}

在这里插入图片描述

<div class="row article-content">
  <div class="col-md-12" v-html="article.body"></div>
</div>

在这里插入图片描述

展示文章作者相关信息

效果图:

在这里插入图片描述

模板:

<div class="article-meta">
  <a href=""><img src="http://i.imgur.com/Qr71crq.jpg" /></a>
  <div class="info">
    <a href="" class="author">Eric Simons</a>
    <span class="date">January 20th</span>
  </div>
  <button class="btn btn-sm btn-outline-secondary">
    <i class="ion-plus
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值