React Native 也能跑 jsdom 了
在 RN 里处理 HTML 片段一直是个头疼事,尤其是当你拿到一段带脚本的 HTML,只想快速执行脚本拿个结果,而不是把整个 WebView 搬出来的时候。WebView 太重了,加载慢且内存占用高,为了跑个简单的 JS 逻辑而启动整个浏览器内核简直是杀鸡用牛刀。
总之,一个非常实用的小工具,把 RN 的处理能力往 Web 侧扩了一大截。
下一篇
纯文字描述直接出视频,这种效率简直离谱 →
这个项目的核心就是把 jsdom 搬到了 React Native 环境,让开发者能直接在 JS 层模拟 DOM 环境。简单说,它解决了在非浏览器环境下解析、操作 HTML 并在内存中运行脚本的问题。
上手实操其实很快,基本流程如下:
一、安装依赖
npm install jsdom-rn
# 或者用 yarn
yarn add jsdom-rn二、基础实操代码
import { JSDOM } from 'jsdom-rn';
const html = `<div><p id="test">Hello World</p></div><script>document.getElementById('test').innerText = 'Changed!';</script>`;
const dom = new JSDOM(html);
// 执行脚本并读取结果
console.log(dom.window.document.getElementById('test').innerText);
// 输出: Changed!值不值得用:
- 场景: 如果你的 RN 项目需要频繁解析第三方 HTML 碎片,或者需要运行一些依赖 DOM API 的旧版 JS 库,这玩意儿简直是救星。
- 性能: 比起 WebView 快得多,因为不需要跨进程通信。
- 局限: 它毕竟是模拟,不能替代完整的浏览器,复杂的 CSS 渲染或高级浏览器 API 可能不支持。
总之,一个非常实用的小工具,把 RN 的处理能力往 Web 侧扩了一大截。
