[转]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 ...
随机推荐
- 访问Stack Overflow速度超慢的原因
很多网站,尤其是国外网站,为了加快网站的速度,都是用了 Google 的 CDN. 但是在天朝,由于某些原因,导致全球最快的 CDN 变成了全球最慢的. 解决方法步骤如下: 下载ReplaceGoog ...
- MyBatis的一级缓存、二级缓存演示以及讲解,序列化异常的处理
MyBatis的缓存机制 缓存就是内存中的一个空间,通常用来提高查询效率 MyBatis支持两种缓存技术:一级缓存和二级缓存,其中一级缓存默认开启,二级缓存默认关闭 一级缓存 (1)一级缓存默认开启 ...
- Ubuntu中wine程序安装windows软件中文乱码如何解决
1.安装wine sudo apt install wine 2.安装中文程序方法 下载exe文件 在命令行执行 wine 文件名.exe 3.中文乱码原因分析 查看/home/用户名/.wine/d ...
- Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port
Httpd服务入门知识-Httpd服务常见配置案例之修改监听的IP和Port 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看默认配置 [root@node101.yinzh ...
- Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇
Httpd服务入门知识-http协议版本,工作机制及http服务器应用扫盲篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Internet与中国 Internet最早来源于美 ...
- Linux必知必会--awk
弱者,是没有资格要求公平的. --<秦时明月>卫庄 参考文献: http://www.ruanyifeng.com/blog/2018/11/awk.html 阮一峰 https://ww ...
- python 监听键盘输入
import sys, select, tty, termios old_attr = termios.tcgetattr(sys.stdin) tty.setcbreak(sys.stdin.fil ...
- 数论篇7——组合数 & 卢卡斯定理(Lucas)
组合数 组合数就是高中排列组合的知识,求解组合数C(n,m),即从n个相同物品中取出m个的方案数. 求解方式 求解通式:$C^{m}_{n}=\dfrac {n!}{m!\left( n-m\righ ...
- docker学习9-搭建rabbitMQ环境
前言 docker搭建rabbitMQ环境 下载镜像 rabbitMQ 镜像仓库地址https://hub.docker.com/_/rabbitmq 找带有 mangement的版本,会带后台管理界 ...
- java abstractQueue