如何任意转换组件渲染输出
How to arbitrarily transform component render output
我正在写一个电子应用程序,它可以扩展,就像Hyperterm可以扩展一样。我试图找到一个系统,允许一些文本被任意转换之前,它呈现在屏幕上。
假设我有一个组件Text,它只是作为一个span呈现。
const Text = ({text}) => <span>{text}</span>
但是根据文本包含的内容,插件可能会改变它的外观。也许有些插件会:
- 用
<a>
标签替换url - 粗体文本被
**
包围,一个la markdown - 给某些重要的单词上色
- 将
:emoji:
替换为<img>
我有什么选择来实现这个?高阶分量能帮上忙吗?或者我是否可以更改Text
组件,使其能够接受某种形式的转换元数据,并知道以何种HTML形式呈现?
您可以使用dangerouslySetInnerHTML
和解析函数,如果它是安全的,适合您的用例
const parseText = text => ...
const createMarkup = text => ({__html: parseText(text)})
const Text = ({text}) => <span dangerouslySetInnerHTML={createMarkup(text)} />
相关文章:
- React重新渲染但未显示正确的组件
- 不能从angular2中的子组件指定父组件中的数组
- 拨打'父亲'函数形式a'儿童'ReactJS中的组件
- 在JavaScript中输出转义字符
- React组件等待所需道具进行渲染
- 如何创建带有插槽的vue js组件预加载程序
- KnockoutJS-组件-多个实例
- 如何在jQuery中将函数的输出分配给变量
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在react js中将值从一个组件发送到另一个组件
- 使用输入/输出事件在 Angular 2 中的父组件中触发方法
- Vue.js 使用 Vuex 和自定义组件,@click方法输出未定义
- 在遍历子组件后 React 输出空节点
- 如何编写输出反应传单标记的组件
- 输出解码组件字符串不工作
- js:创建一个多选择组件.选项组件状态的组合流不输出改变的状态
- 如何从ui bootstrap's uibModal.open设置组件输出绑定
- 余烬CLI-在每个循环中使用组件而不是itemController的条件输出
- 如何任意转换组件渲染输出
- 将输出从子组件发送到父组件 - Angular 2