Vue render 函数中使用this

8 篇文章 0 订阅
3 篇文章 0 订阅

1.在render中直接使用this,on里面click函数不是箭头函数

使用this需要在父级将this保存起来才能使用

render: (h, params) => {
            const { row } = params
            let _this = this
            return h('div', {
              class: {
                picture: true
              },
              style: {
                backgroundImage: `url(${row.picture})`
              },
              on: {
                click () {
                  if (!row.picture) {
                    return
                  }
                  _this.previewUrl = row.picture
                  _this.showPreview = true
                }
              }
            })
}

2.在render的click函数中使用箭头函数可以直接使用this访问vue实例

render: (h, params) => {
            const { row } = params
            return h('div', {
              class: {
                picture: true
              },
              style: {
                backgroundImage: `url(${row.picture})`
              },
              on: {
                click: () => {
                  if (!row.picture) {
                    return
                  }
                  this.previewUrl = row.picture
                  this.showPreview = true
                }
              }
            })
          }

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Vue render 函数是一个用来创建虚拟 DOM 的函数。通过 render 函数,我们可以手动地创建一个虚拟 DOM 树,然后将其渲染到页面上。 在使用 render 函数之前,需要先了解 Vue 的虚拟 DOM。虚拟 DOM 是一个 JavaScript 对象,它描述了真实 DOM 树的结构和属性。使用虚拟 DOM 可以提高性能,降低真实 DOM 操作的代价。 下面是一个简单的使用 render 函数的例子: ```javascript Vue.component('my-component', { render: function (createElement) { return createElement('h1', 'Hello World') } }) ``` 在这个例子,我们定义了一个名为 my-component 的组件,并在其定义了一个 render 函数。这个函数接收一个 createElement 函数作为参数,用来创建虚拟 DOM 对象。在这个例子,我们使用 createElement 函数创建了一个 h1 标签并设置其内容为 "Hello World"。 除了 createElement 函数render 函数还可以返回一个包含多个虚拟 DOM 对象的数组,或者返回一个嵌套的虚拟 DOM 对象。 ```javascript Vue.component('my-component', { render: function (createElement) { return createElement('div', [ createElement('h1', 'Hello World'), createElement('p', 'This is a paragraph') ]) } }) ``` 在这个例子,我们创建了一个包含两个子节点的 div 元素,第一个子节点是一个 h1 标签,第二个子节点是一个 p 标签。 除了 createElement 函数render 函数还可以接收一个 context 对象作为参数,用来访问组件的状态和属性。 ```javascript Vue.component('my-component', { props: ['message'], render: function (createElement, context) { return createElement('h1', context.props.message) } }) ``` 在这个例子,我们定义了一个名为 message 的属性,并在 render 函数使用了它。使用 context.props 可以访问组件的属性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值