uni-app文章详情-富文本展示 优雅展示代码块

在uni-app开发中,开发一个资讯详情页面,详情里包含图片和代码块。这时候用简单的rich-text控件已经不够用了。用官方demo里的html-parser.js也无法很好的展示代码区域。这个时候就要使用官方提供的插件来解决。

首先:下载插件:https://ext.dcloud.net.cn/plugin?id=183

第二步:写代码 demo示例

注意:官方提供的示例代码有点小问题,请用我下面的代码。

 

<template>
  <div>
    <u-parse :content="article" @preview="preview" @navigate="navigate" />
  div>
template>
 
<script>
import uParse from '../../components/u-parse/u-parse.vue';  //注意:官方提供的示例代码有问题
 
export default {
  components: {
    uParse
  },
  data () {
    return {
      article: '
我是HTML代码
'     }   },   methods: {     preview(src, e) {       // do something     },     navigate(href, e) {       // do something     }   } } script>   <style> @import url("../../components/u-parse/u-parse.css");  //注意:官方提供的示例代码有问题 style>

我这边具体的业务代码如下:(可以忽略)

<template>
    <view>
        <view class="banner">
            {{banner.title}}
        view>

        <view class="article-meta">
            <text class="article-meta-text article-author">{{banner.source}}text>
            <text class="article-meta-text article-text">发表于text>
            <text class="article-meta-text article-time">{{banner.datetime}}text>
        view>
        <view class="article-content">
            <div>
                <u-parse :content="article" @preview="preview" @navigate="navigate" />
            div>
        view>
        <view class="comment-wrap">view>
    view>
template>


<script>
    import uParse from '../../components/u-parse/u-parse.vue';

    const FAIL_CONTENT = '

获取信息失败1

'; export default { components: { uParse }, data() { return { banner: {}, article: '' } }, onShareAppMessage() { return { title: this.banner.title, path: '/pages/detail/detail?query=' + JSON.stringify(this.banner) } }, onLoad(event) { // 目前在某些平台参数会被主动 decode,暂时这样处理。 try { this.banner = JSON.parse(decodeURIComponent(event.query)); console.log("详情页面"); } catch (error) { console.log("异常来!"); this.banner = JSON.parse(event.query); } uni.setNavigationBarTitle({ title: '找一找教程网zyiz.net' }); this.getDetail(); }, methods: { getDetail() { var zyizurl = getApp().globalData.zyiz_domain + '/api/article/article.ashx?actName=detail&id='; uni.request({ url: zyizurl + this.banner.newsid, success: (result) => { console.log("详情结果:"); console.log(result); let content = FAIL_CONTENT if (result.statusCode == 200) { content = result.data.data.content } this.article = content; } }); }, preview(src, e) { // do something }, navigate(href, e) { // do something } } } script> <style> @import url("../../components/u-parse/u-parse.css"); /* #ifndef APP-PLUS */ page { min-height: 100%; } /* #endif */ .banner { margin: 10upx; text-align: center; } .article-content image { width: 96%; } .banner-img { flex: 1; } .title-area { position: absolute; left: 30upx; right: 30upx; bottom: 30upx; z-index: 11; } .title-text { font-size: 32upx; font-weight: 400; line-height: 42upx; lines: 2; color: #ffffff; overflow: hidden; } .article-meta { padding: 20upx 30upx; flex-direction: row; align-items: center; justify-content: flex-start; } .article-meta-text { color: gray; } .article-text { font-size: 26upx; line-height: 50upx; margin: 0 20upx; } .article-author { font-size: 30upx; } .article-time { font-size: 30upx; } .article-content { font-size: 30upx; padding: 0 30upx; margin-bottom: 30upx; overflow: hidden; } style>

 

 

第三步:查看效果:

1、微信小程序的效

uni-app文章详情-富文本展示 优雅展示代码块_第1张图片

2、百度小程序的效果:

uni-app文章详情-富文本展示 优雅展示代码块_第2张图片

 

非常完美的解决了问题。

文章根据:http://www.zyiz.net/tech/detail-104163.html 改编。

你可能感兴趣的:(uni-app文章详情-富文本展示 优雅展示代码块)