[转]iview render函数常用总结(vue render函数)
原文地址:https://blog.csdn.net/weixin_43206949/article/details/89385550
iview 的render函数就是vue的render函数
iview常用在表格里面自定义内容
render函数常用的配置
h就是createdElement的简写
3个参数如下:
h("元素名称或组件名称", {
domProps: { // 原生dom元素的一些属性
value: 1,
type: 'number',
min: 1,
innerHTML:’‘
},
props:{ // 传给组件数据 比喻iview Button的type,size 等等
type:'text',
size:'small'
},
class:{ // 类
btn:true//
},
attrs:{ // html属性,class
id:'box'
class:'brn2'
},
style:{ // 内联样式
},
slot:'slotName', // 组件的插槽
on:{ // 事件 包括组件的自定义事件
click:()=>{
},
'on-change':()=>{
},
},
nativeOn:{ // 类似vue的.native修饰符,自定义组件常用
click:()=>{
}
}
}
,'文本啊啊啊'
)
h的第二个参数支持数组的形式,数组里面可以是多个h渲染出来的元素对象或字符串
eg:
1,渲染多个组件
{
title: '操作',
width: 150,
render: (h, { row, index }) => {
let btn = h('i-switch', {
props: {
value: row.join_status === 1 ? true : false,
size: 'large',
loading: row.loading
},
on: {
'on-change': (val) => {
this.tabData[index].loading = true
if (!val) {
this.$Modal.confirm({
title: '你确定要禁用该加盟商吗?',
content: '<p>禁用将会导致该加盟商下所有人员无法登陆CRM系统</p>',
onOk: () => {
this.changeChannelStatus(row.id)
},
onCancel: () => {
this.tabData[index].loading = false
}
});
return
}
this.changeChannelStatus(row.id)
}
}
}, [
h('span', {
slot: 'open',
domProps: {
innerHTML: 'ON'
}
}),
h('span', {
slot: 'close',
domProps: {
innerHTML: 'OFF'
}
})
]
)
let edit = h('a', {
style: {
'margin-right': '15px',
},
on: {
click: () => {
this.$router.push({ name: 'addJoiner', query: { ...row, tit: '编辑加盟商' } })
}
}
}, '编辑')
return h('div', [edit, btn])
}
效果图:
switch 异步时loading状态
2,渲染自定义组件
{
title: '状态',
render: (h, { row }) => {
return h(myTag, {
props: {
color: row.join_status === 1 ? '#52C41A' : 'red'
},
class: {
'hahah': true
},
nativeOn: { //事件
click: () => {
alert(1)
}
}
}, row.join_status === 1 ? '正常' : '解约')
}
},
值得注意的是配置的参数vlaue支持变量。
怎么绑定v-model?
这个问题vue官方说了:是没法绑定的,只能自己实现
实现也不难
eg:
{
title: '价格',
key: 'name',
render: (h, { row, index }) => {
let input = h('input', {
domProps: {
value: row.price,
type: 'number',
min: 1
},
style: {
width: '200px',
display: 'inline-block',
height: '32px',
'line-height': 1.5,
},
on: {
change: (event) => { // 实现绑定数据
let val = event.target.value
this.tabData[index].price = val
}
}
})
let arr = [input]
let tip = h('span', {
style: {
color: 'red',
marginLeft: '10px'
}
}, '必填,最多保留两位小数')
if (row.tip) {
arr.push(tip)
}
return h('div', arr)
}
}
[转]iview render函数常用总结(vue render函数)的更多相关文章
- EXCEL函数常用技巧浅析
EXCEL函数常用技巧浅析 EXCEL函数是一门趣味性非常大的游戏,此贴内容基本上为总结前人经验而来.废话不多说,我们现在走入正题. 一:判断数值奇偶性 1.1 ISODD(number) 判断一个 ...
- vue render函数解析
一.render 函数的作用: 写一些vue.js的template太繁琐,利用render,可以使用js来生成模板,更加灵活和简便. 二.使用render前提: 官网也说了.在深入渲染函数之前推荐阅 ...
- vue render函数 函数组件化
之前创建的锚点标题组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法,它只是一个接受参数的函数 在这个例子中,我们标记组件为functional,这意味它是无状态(没有data), ...
- vue render函数
基础 vue推荐在绝大多数情况下使用template来创建你的html.然而在一些场景中,你真的需要javascript的完全编程能力.这就是render函数.它比template更接近编译器 < ...
- params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
- vue render 渲染函数
vue render 渲染函数 经常看到使用render渲染函数的示例,而且在一些特殊情况下,确实更好使用,可以更加有效地细分组件,因而借助vue-element-admin来学习一波 render函 ...
- vue render
Vue 的 render 渲染 API vue2 的 vnode tag: 当前节点的标签名 data: 当前节点是数据对象 children: 子节点,数组也是vnode 类型 text: 当前节点 ...
- new Vue({ render: h => h(App), }).$mount('#app')
这里创建的vue实例没有el属性,而是在实例后面添加了一个$mount('#app')方法. $mount('#app') :手动挂载到id为app的dom中的意思 当Vue实例没有el属性时,则该实 ...
- template or render function not defined vue 突然报错了,怎么解决
报错图例如下:template or render function not defined vue 突然报错了,怎么解决什么错误呢,就是加载不出来,网上看了一通,是vue版本不对,是vue-comp ...
随机推荐
- 虚拟机安装xp系统教程
xp和win7安装过程有区别 xp.iso和win7.iso不一样 安装xp必须用特殊方法,此方法的大致步骤如下: 1.VMware新建xp类型的虚拟机 2.进入xp的PE系统 3.在PE系统分2个区 ...
- python的异常种类
AttributeError 访问一个对象没有的属性 比如:foo.x 但是foo没有x属性 IOError 输入/输出异常 基本是无法打开文件 ImportError 无法映入模块或包 路径或者名称 ...
- 【Spring Boot】Spring Boot之利用Logstash将日志转换成以JSON的格式存储和输出
一.Logstash的作用 Logstash是一个完全开源的工具,它可以对日志进行收集.过滤,能非常方便地将日志转换成以JSON的格式存储和输出,并将其存储供以后使用. 二.整合Logstash的步骤 ...
- Word 页码设置教程:如何删除封面和目录的目录?
我们常写的报告大都由封面.目录.正文和附录组成,但是页码通常是从正文开始的,所以下面介绍如何从指定页面开始设置页码. 在介绍之前需要了解一下分隔符的作用.分隔符大体分成分页符和分节符. 分页符细分的几 ...
- Cookie 跨域 和 SSO
cookie是不能跨域访问的,但是在二级域名是可以共享cookie cookie的四个可选属性: 1. cookie的生存期属性:expires; 默认情况下,cookie只在浏览器会话期存在.退出浏 ...
- Xorequ(BZOJ3329+数位DP+斐波那契数列)
题目链接 传送门 思路 由\(a\bigoplus b=c\rightarrow a=c\bigoplus b\)得原式可化为\(x\bigoplus 2x=3x\). 又异或是不进位加法,且\(2x ...
- Linux四剑客之awk命令
AWK详解 awk简介 awk其名称得自于它的创始人 Alfred Aho .Peter Weinberger 和 Brian Kernighan 姓氏的首个字母.实际上 AWK 的确拥有自己的语 ...
- Spring Cloud Config 知识点
Spring Cloud Config项目是一个解决分布式系统的配置管理方案.它包含了Client和Server两个部分,server提供配置文件的存储.以接口的形式将配置文件的内容提供出去,clie ...
- 运维常用shell脚本之日志清理
1.创建一个日志清理脚本 #/bin/bash for i in `find /root/.pm2/logs -name "*.log"` do cat /dev/null > ...
- Java 多线程学习扩展
http://www.imooc.com/video/5176 一.如何扩展Java并发知识 Java Memory Mode JMM描述了Java线程如何通过内存进行交互 happens-befor ...