活动问卷
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

10 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. ## uParse 适用于 uni-app/mpvue 的富文本解析组件
  2. > 支持 Html、Markdown 解析,Fork自: [mpvue-wxParse](https://github.com/F-loat/mpvue-wxParse)
  3. ## 属性
  4. | 名称 | 类型 | 默认值 | 描述 |
  5. | -----------------|--------------- | ------------- | ---------------- |
  6. | loading | Boolean | false | 数据加载状态 |
  7. | className | String | — | 自定义 class 名称 |
  8. | content | String | — | 渲染内容 |
  9. | noData | String | 数据不能为空 | 空数据时的渲染展示 |
  10. | startHandler | Function | 见源码 | 自定义 parser 函数 |
  11. | endHandler | Function | null | 自定义 parser 函数 |
  12. | charsHandler | Function | null | 自定义 parser 函数 |
  13. | imageProp | Object | 见下文 | 图片相关参数 |
  14. ### 自定义 parser 函数具体介绍
  15. * 传入的参数为当前节点 `node` 对象及解析结果 `results` 对象,例如 `startHandler(node, results)`
  16. * 无需返回值,通过对传入的参数直接操作来完成需要的改动
  17. * 自定义函数会在原解析函数处理之后执行
  18. ### imageProp 对象具体属性
  19. | 名称 | 类型 | 默认值 | 描述 |
  20. | -----------------|--------------- | ------------- | ------------------ |
  21. | mode | String | 'aspectFit' | 图片裁剪、缩放的模式 |
  22. | padding | Number | 0 | 图片内边距 |
  23. | lazyLoad | Boolean | false | 图片懒加载 |
  24. | domain | String | '' | 图片服务域名 |
  25. ## 事件
  26. | 名称 | 参数 | 描述 |
  27. | -----------------|----------------- | ---------------- |
  28. | preview | 图片地址,原始事件 | 预览图片时触发 |
  29. | navigate | 链接地址,原始事件 | 点击链接时触发 |
  30. ## 基本使用方法
  31. ``` vue
  32. <template>
  33. <div>
  34. <u-parse :content="article" @preview="preview" @navigate="navigate" />
  35. </div>
  36. </template>
  37. <script>
  38. import uParse from '@/components/u-parse/u-parse.vue'
  39. export default {
  40. components: {
  41. uParse
  42. },
  43. data () {
  44. return {
  45. article: '<div>我是HTML代码</div>'
  46. }
  47. },
  48. methods: {
  49. preview(src, e) {
  50. // do something
  51. },
  52. navigate(href, e) {
  53. // do something
  54. }
  55. }
  56. }
  57. </script>
  58. <style>
  59. @import url("@/components/u-parse/u-parse.css");
  60. </style>
  61. ```
  62. ## 渲染 Markdown
  63. > 先将 markdown 转换为 html 即可
  64. ```
  65. npm install marked
  66. ```
  67. ``` js
  68. import marked from 'marked'
  69. import uParse from '@/components/u-parse/u-parse.vue'
  70. export default {
  71. components: {
  72. uParse
  73. },
  74. data () {
  75. return {
  76. article: marked(`#hello, markdown!`)
  77. }
  78. }
  79. }
  80. ```