近期开发了一款属于理科类的答题考试小程序,公式比较多,所以引用了katex 库。

katex 库的作用是解析 latex 公式生成虚拟 dom 树对象,将 dom 对象翻译成小程序的 rich-text 支持的 nodes 由小程序渲染。

但是,在答题小程序中不到5个页面会使用到这个库,使用频率并不高。由于 katex 库过大会大量占用小程序包体大小。

所以,就想到了分包这个解决方案。就是 katex 库放在分包中。
js文件
php
const katex = require('../libs/katex/dist/katex.min.js')
const = latex:"x^2 + y^2 = z^2"
this.setData({
nodes: katex.renderToString(latex, {
displayMode: true, // 这个很重要,公式样式
throwError: true, // 为true时,解析失败会抛出错误,否则会直接把错误信息解析为nodes结构展示
})
});
wxml文件
xml
<view class="container">
<rich-text nodes="{{nodes}}"></rich-text>
<view>{{latex}}</view>
<textarea value="{{latex}}" bindinput="onInput" maxlength="1400"></textarea>
<button bindtap="renderLatex">渲染</button>
</view>
wxss文件
scss
@import "../libs/katex/dist/katex.wxss";