前端:renderer渲染方法的几种常见用法

这篇博客介绍了前端数据的转义处理,通过示例展示了如何根据数据值动态渲染按钮,并提供了一个天气预警的逻辑处理案例。内容包括:1.数据转义,用于安全展示敏感信息;2.行内按钮元素的添加,实现查阅和修改功能;3.根据特定条件进行实时逻辑处理,例如高温预警展示。这些技术增强了前端数据的展示与交互性。

1.对数据进行转义处理

eg:加载时执行该方法进行转义后再展示

<div name="is_test" field="is_test" width="100" headerAlign="center" allowSort="true" align="center" renderer="escape">是否测试</div>
/* 前端是否字段转义*/
function escape(e) {
	if(e.value==0){
		return '否';
	}else {
		return '是';
	}
}

2.在每个数据行增加按钮元素

eg:适用于需要在每行增加查阅、修改等功能按钮时

<div width="70" renderer="onEditrender" headerAlign="center" align="center">操作</div>
function onEditrender(e){
	 var record = e.record; 
	 var id = record.id;
	 var  s ='';
	 s = '<a class="Edit_Button" href="javascript:view(\''+id+'\');" >查阅</a>  <a class="Edit_Button" href="javascript:edit(\''+id+'\');" >修改</a>';   
     return s;
}

3.进行一些加载实时的逻辑处理,类似1,比如根据该行数据的某个值或某几个值做一些结果展示。

eg:当天气为晴,温度高于35℃,且为工作日时显示高温预警。

### 前端 Markdown 渲染库及其实现方法前端开发中,Markdown 渲染是一项常见需求。以下是几种常用的 Markdown 渲染库以及其实现方式: #### react-remarkable `react-remarkable` 是一款专门为 React 应用设计的 Markdown 渲染库。它具有高性能和灵活性的特点,能够轻松将 Markdown 转换为 HTML 并集成到 React 项目中[^1]。 ```javascript import Remarkable from 'remarkable'; import React, { useState } from 'react'; function App() { const [markdownContent, setMarkdownContent] = useState('# Hello World'); const md = new Remarkable(); const htmlOutput = md.render(markdownContent); return ( <div> <textarea value={markdownContent} onChange={(e) => setMarkdownContent(e.target.value)} /> <div dangerouslySetInnerHTML={{ __html: htmlOutput }} /> </div> ); } export default App; ``` #### reMarked.js 另一款值得推荐的是 `reMarked.js`,这款库以其简洁的设计、强大的功能和良好的性能著称。无论是前端开发者还是后端程序员,在需要处理 Markdown 的场景下都可以通过该库快速完成任务[^2]。 #### 使用 Vue 和 GitHub 风格渲染 如果是在 Vue 中使用,则可以借助 `<article>` 标签配合 CSS 类名 `.markdown-body` 来呈现标准化的 Markdown 效果。同时还可以引入第三方样式表如 `github-markdown-css` 提升视觉体验[^3]。 ```vue <template> <article v-html="compiledMarkdown" class="markdown-body"></article> </template> <script> import marked from 'marked'; import hljs from 'highlight.js'; import '../node_modules/github-markdown-css/github-markdown.css'; export default { data() { return { markdownSource: '# Example\nThis is an example.' }; }, computed: { compiledMarkdown() { let renderer = new marked.Renderer(); renderer.code = (code, lang) => { return '<pre><code>' + hljs.highlightAuto(code).value + '</code></pre>'; }; return marked(this.markdownSource, { renderer }); } } }; </script> ``` #### 扩展功能插件 - markdown-it 为了满足更复杂的业务需求,可以选择基于 `markdown-it` 构建解决方案。此核心库提供了丰富的 API 接口用于定制化扩展,并且有众多社区维护好的附加组件可供选用[^4]。 - **自定义容器**: 利用 `markdown-it-container` 创建特殊区块。 - **任务列表支持**: 添加 `markdown-it-task-lists` 启用待办事项标记。 - **表格解析能力增强**: 结合 `markdown-it-table` 处理复杂数据结构。 - **LaTeX 数学表达式兼容性提升**: 导入 `markdown-it-katex` 解决科学计算领域难题。 注意当涉及用户提交的内容时务必考虑安全性问题比如防止跨站脚本攻击(XSS),另外针对大篇幅文章应采取按需加载策略优化用户体验。 ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值