iview中的render函数的用法

6

国瑞前端:Render函数是vue2.x 新增的一个函数、功能非常强大,webpack等打包工具就是将代码转换为Render之后再进行输入,它将template里面的节点解析成虚拟…

国瑞前端:Render函数是vue2.x 新增的一个函数、功能非常强大,webpack等打包工具就是将代码转换为Render之后再进行输入,它将template里面的节点解析成虚拟的dom,可以提升节点性能,在iviewUI组件中,也有着一些应用,当UI组件的效果不满足我们的要求的时候,我们就需要定制一些东西了,这个时候,我们就用到了Render:

在表格中的应用

render写在表头下方

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
title: 'name',
align: 'center',
width: 60,
type: 'selection',          
render: (h, params) => {
            return h('div', [
              h('span', {
                style: {
                  fontSize: '14px',
                  padding: '5px 10px',
                  cursor: 'pointer',
                  color: 'red'
                },
                on: {
                  click: () => {
                    console.log(params.row)
                  }
                }
              }, '这里是标签中的文字')
            ])
          }

上面代码的意思就是在这个表格中,添加一个div,在嵌套一个span标签,再给span标签设置样式,给div设置一个点击事件,点击弹出的就是用于渲染该行的数据,params.row后面还可以跟上具体的值

拓展

在使用Render的时候,当样式很多了的时候,我们将样式全部写在代码中,就会显得很凌乱,这个时候,我们就可以使用class,也就是类来控制。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
title: 'name',
align: 'center',
width: 60,
type: 'selection',    
render: (h, params) => {
 h('span', {
      class:'m10px'
 }, '这里的是span标签中的文字')
}

//css代码
<style>
.m10px {
margin:10px;
}

</style>

注意:这里的style是不可以添加作用域scoped的哦,加了class样式就不生效了,这点需要特别注意。

class(类)也可以添加多个
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
title: 'name',
align: 'center',
width: 60,
type: 'selection',    
render: (h, params) => {
 h('span', {
        class:{
      'colorRed':true,
      'bgBlue':true
  }
 }, '这里的是span标签中的文字')
}

//css代码
<style>
.colorRed{
color:red;
}
.bgBlue{
background:blue;
}
</style>

注意:这里的style是不可以添加作用域scoped的哦,加了class样式就不生效了,这点需要特别注意。

作者: huanggr

为您推荐

7

发表评论

电子邮件地址不会被公开。 必填项已用*标注