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'
}
})]
);
}

最新文章

  1. CentOS 配置防火墙操作实例(启、停、开、闭端口):
  2. Angularjs select的使用
  3. SQL Server中关于跟踪(Trace)那点事
  4. 复制 VS 复用 -04
  5. Autofac.Configuration 3.3.0不稳定
  6. 【GPU编解码】GPU硬编码
  7. 复合sql
  8. [另开新坑] 算导v3 #26 最大流 翻译
  9. 25个App免费资源网站
  10. ArcGis(01)——地图切片以及发布底图服务
  11. PHP引用(&amp;)详解
  12. 【python学习笔记02】python的数据类型2
  13. [iOS]封装单例类
  14. mysql5.5慢日志设置和查询
  15. KindEditor文件上传成功前端显示上传失败
  16. IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理
  17. Laravel 框架 基础(一)
  18. CDOJ 1965 连通域统计【DFS】
  19. Django Form ModelForm modelfromset
  20. Oracle 数据库启动过程

热门文章

  1. win10与子系统Ubuntu 相关配置
  2. asp.net—— 基础之截取字符串
  3. Qt自动填写表单并点击按钮,包括调用js方法
  4. [Cocos2d-x for WP8学习笔记] 一些基本概念,建立自己的启动界面
  5. linux命令之网络管理命令(下)
  6. docker运行nginx
  7. ZJOI round1游记
  8. jqury表单验证
  9. 前端-chromeF12 谷歌开发者工具详解 Network篇
  10. UITableView定制左滑效果