小程序html转wxml,微信小程序用wxParse解析html

我们在上一节课程中提到,
小程序解析html网页标签,
有3种方法:
1) 使用 wxPasr 解析html
2) 单独解析 html标签
3) 使用最新的小程序组件 web-view

今天子恒老师跟你分享第一种方法

wxpasr解析html效果

wxpasr解析html效果

一、 wxParse 把html转换为wxml的方法和流程

1) 首先下载 wxParse脚本

放到项目根目录

2) 在样式页面 wxss 中引入 wxparse 样式文件

@import “../../wxParse/wxParse.wxss”;

3) 在逻辑处理页面 js 中引入 wxparse 模块

核心代码片段

var wxParse = require(‘../../wxParse/wxParse.js’);

wxParse.wxParse(‘article’, ‘html’, content, that, 5);

参数说明
article:节点名称,会在 wxml 中引用
html:代表解析的是html代码,其实wxparse还可以解析markdown代码
content:代表从服务器取到取html内容
that:代表 app 实例
5:代表图片的内边距

4) 在 wxml 结构页面中使用

核心代码片段

<import src=”../../wxParse/wxParse.wxml” />

<template is=”wxParse” data=”{{wxParseData:article.nodes}}” />

代码说明
import… 引入 wxparse 模板文件
<template is=”wxParse” data=”{{wxParseData:article.nodes}}” /> 是固定格式,其中的article与第3步中的article节点名称保持一致。

猛击这里
观看《小程序使用wxparse解析html》视频教程,
演示代码编写更详细,

源代码下载直接使用。

wxpasr解析html代码

wxpasr解析html代码

二、 小程序使用wxparse解析html的缺点

你看wxparse的源代码,
就会发现,
主要有下面两个不足的地方,

1) 加载的文件多且大

由于小程序对整个项目的大小,
要求在2M以内,
如果你不需要wxparse的emotion,
可以把这个删除,
节省空间。

2) 影响性能

wxparse在html转wxml过程中,
需要多次调用小程序setData()方法,
小程序开发官方文档中,
会提示你尽可能的少调用setData()方法,
因为这个方法会损耗性能。

下一节课程,
《小程序单独解析html》课程中,
就只调用一次setData()方法,
在性能上会更好。

猛击这里
观看《小程序使用wxparse解析html》视频课程,

源代码下载直接使用

转自: 秦子恒微信课堂
原文链接: https://www.qinziheng.com/xiaochengxudev/4282.htm
插件地址:https://github.com/kevenfeng/html-to-wxml如果前端技术比较牛,可以直接看github上面的demo。可以更好的理解用法。使用方法:1.引用插件var R_htmlToWxml = require(‘../../util/htmlToWxml.js’);//引入公共方法2.将html内容成json数据R_htmlToWxml.html2json(“html内容”);换后的json格式类型大概如下:3.吐到页面中显示<block wx:for="{{content}}"  wx:for-index="idy"  wx:for-item="cellData">         <block  wx:if="{{cellData.type == 'view'}}">             <view class="p">                 <block  wx:for="{{cellData.child}}" wx:key="text">                     <block  wx:if="{{item.type == 'a'}}">                         <text class="a" data-seccode="{{item.attr['data-seccode']}}" data-secname="{{item.attr['data-secname']}}" bindtap="stockClick">{{item.text}}</text>                     </block>                     <block  wx:else>                         <text>{{item.text}}</text>                     </block>                 </block>             </view>         </block>         <block wx:if="{{cellData.type == 'img'}}">             <image class="img" data-index="{{idy}}" style="height: {{cellData.attr.height?cellData.attr.height:0}}px"  mode="aspectFit" src="{{cellData.attr.src}}" bindload="imageLoad"></image>         </block>     </block>demo效果:由于小程序图片的高度没法自适应,需要给图片设置高度,所以需要在图片加载完以后,获取图片高度,等比算出显示图片高度,赋值给对应图片通常我们抓取的内容是html页面,特别是像资讯这一类的,如果在小程序里面显示文章内容,此插件提供了一种解决方案,希望对大家有用。在客户端中用native显示html页面体验上面没有native的好,htmlToWxml插件给客户端中用native的方式显示html内容提供了一种解决方案
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值