render函数的使用
2024-10-14 19:33:43
render函数的几种使用方法
最近使用element-ui的tree组件时,需要在组件树的右边自定义一些图标,就想到了用render函数去渲染。
<el-tree class="p-tree" :render-content="renderContent" ref="pTree">
</el-tree>
render
函数接收一个createElement
方法作为第一个参数用来创建VNode
。
第二个参数用来接收一个上下文信息。
createElement 接受的参数 1、标签名,2、内容(多数情况下都是动态渲染进去的,所以直接写内容的情况还是挺少的),
可以直接写各种属性,也可以用一个变量名,把各种属性存起来。
3、子节点 如:
直接写入的:
renderContent (createElement, { node, data, store }) {
return createElement(
'span',{
'class': {
'node-disabled': data.is_forbidden === '2'
},
attrs: {
id: type
},
style: {
'float': 'right',
'margin-top': '10px',
'margin-right': '10px'
},
on: {
click: (e) => {
e.stopPropagation();
}
}
}
);
// console.log(node);
})
用变量名字的
renderContent (createElement, { node, data, store }) {
let prop = {
'class': [
'filter-tree-content',
parseInt(data.is_own) === 1 ? 'green' : ''
],
domProps: {
innerHTML: data.alias
}
};
return createElement(
'span', prop
);
// console.log(node);
})
两种方式的写法基本一致,class的写法稍微有点不一样 还有一种就是嵌套型的 renderContent (createElement, { node, data, store }) { // div 标签下包裹一个a标签
let prop = { // 设置属性
'class': [
'v-text',
'pack'
],
domProps: {
innerHTML: '...'
},
on: {
click: ($event) => { // 添加事件
this.clickHandler(data, $event);
}
}
};
return createElement(
'div', // 创建标签
{
'class': { // 设置类名
'node-disabled': data.is_forbidden === '2'
}
},
[createElement('span', {
domProps: {
innerHTML: node.label
},
'class': {
textContent: this.isClass
},
style: {
backgroundSize: '15px 15px'
}
})]
);
}
最新文章
- CentOS 配置防火墙操作实例(启、停、开、闭端口):
- Angularjs select的使用
- SQL Server中关于跟踪(Trace)那点事
- 复制 VS 复用 -04
- Autofac.Configuration 3.3.0不稳定
- 【GPU编解码】GPU硬编码
- 复合sql
- [另开新坑] 算导v3 #26 最大流 翻译
- 25个App免费资源网站
- ArcGis(01)——地图切片以及发布底图服务
- PHP引用(&;)详解
- 【python学习笔记02】python的数据类型2
- [iOS]封装单例类
- mysql5.5慢日志设置和查询
- KindEditor文件上传成功前端显示上传失败
- IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
- Laravel 框架 基础(一)
- CDOJ 1965 连通域统计【DFS】
- Django Form ModelForm modelfromset
- Oracle 数据库启动过程