[转]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 ...
随机推荐
- springboot使用阿里fastjson来解析数据
1.spring boot默认使用的json解析框架是jackson,使用fastjson需要配置,首先引入fastjson依赖 pom.xml配置如下: <project xmlns=&quo ...
- LP线性规划初识
认识LP 线性规划(Linear Programming) 特指目标函数和约束条件皆为线性的最优化问题. 目标函数: 多个变量形成的函数 约束条件: 由多个等式/不等式形成的约束条件 线性规划: 在线 ...
- Linux系统下jar包的启动方式
Linux 运行jar包命令如下: 方式一: Java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? ...
- Nginx——跨域造成的504问题
前言 前台域名和后台域名是两个不同不同的二级域名,访问的时候造成了跨域,出现了504错误 解决 修改Nginx配置,将超时的时间设置为1200秒 keepalive_timeout 1200; pro ...
- 开启了wpjam以后网站语言不能设置英文的解决方法
一位网友问ytkah开启了wpjam以后网站语言不能设置英文了这是什么情况?选择English保存以后还是简体中文,禁用插件再设置语言是可以设为English,好几个站点都是这样 其实很简单,只要把这 ...
- DOM是浏览器提供给开发者的语柄、套接字、文件接口
DOM是浏览器提供给开发者的语柄.套接字.文件接口
- 在jsp中获取SpringSecurity中已登录的用户的用户名
1.先引入secrity的标签库 <%@ taglib prefix="security" uri="http://www.springframework.org/ ...
- OpenCV 学习笔记(10)HSV颜色空间及颜色空间转换(RGB-HSV)
1.1 颜色空间介绍 RGB 颜色空间是大家最熟悉的颜色空间,即三基色空间,任何一种颜色都可以由该三种 颜色混合而成.然而一般对颜色空间的图像进行有效处理都是在 HSV 空间进行的,HSV(色 调 H ...
- LeetCode 737. Sentence Similarity II
原题链接在这里:https://leetcode.com/problems/sentence-similarity-ii/ 题目: Given two sentences words1, words2 ...
- 洛谷 P4158 [SCOI2009]粉刷匠 题解
每日一题 day59 打卡 Analysis 很容易看出是一个dp, dp[i][j[k][0/1]来表示到了(i,j)时,刷了k次,0表示这个没刷,1表示刷了. 于是有转移: 1.换行时一定要重新刷 ...