真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在vue中使用render渲染函數(shù)

這篇文章將為大家詳細講解有關如何在vue中使用render渲染函數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

創(chuàng)新互聯(lián)公司是一家專業(yè)提供卡若企業(yè)網(wǎng)站建設,專注與網(wǎng)站制作、成都網(wǎng)站建設、H5開發(fā)、小程序制作等業(yè)務。10年已為卡若眾多企業(yè)、政府機構等服務。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進行中。

1.什么是render函數(shù)?

vue通過 template 來創(chuàng)建你的 HTML。但是,在特殊情況下,這種寫死的模式無法滿足需求,必須需要js的編程能力。此時,需要用render來創(chuàng)建HTML。

比如如下我想要實現(xiàn)如下html:


 

      Hello world!     

我們會如下使用:

 

 
  演示Vue
  
 
 
  
   
    Hello world!
   
  
                             

 2.例:

遇到的問題:

在工作中,我創(chuàng)建了一個button組件,又創(chuàng)建了一個button-group組件

button組件較為簡單,就是一個可以輸入type/size/icon等屬性的button

如何在vue中使用render渲染函數(shù)

此為渲染后結果。

然后,創(chuàng)建button-group組件,目標結果為

如何在vue中使用render渲染函數(shù)

此處,不僅要在最外層包裹一層div,還要在每個button組件外層包裹一層p標簽。此處,就需要使用render函數(shù)了。

既然有了render函數(shù),就不再需要template標簽了,vue文件中只需要script標簽(該組件style是全局的)

button-group.vue如下

接下來就要看render函數(shù)了。

render函數(shù)中的createElement方法有三個參數(shù)。第一個參數(shù)為外層標簽名,第二個為外層標簽的屬性對象,第三個為外層標簽中的內(nèi)容

所以第一步

  render(createElement) {
   return createElement(
    'div', {
     class: this.groupClass
    }, '內(nèi)容',
   )
  }

渲染結果:

如何在vue中使用render渲染函數(shù)

那怎樣在外層div中渲染button組件呢?

render函數(shù)的第三個參數(shù)除了字符串,還可以傳入VNode的數(shù)組。VNode就是vue中的節(jié)點。

此處,我們通過this.$slots.default獲取所有插入到button-group組件內(nèi)默認slot的button節(jié)點

  render(createElement) {
   return createElement(
    'div', {
     class: this.groupClass
    }, this.$slots.default,
   )
  },

渲染結果:

 如何在vue中使用render渲染函數(shù)

button已經(jīng)正確渲染到了外層div中。但是怎么在每個button外層包裹一層元素呢。createElement會創(chuàng)建新的VNode,而render函數(shù)第三個參數(shù)需要VNode數(shù)組,所以我們需要傳入一個由createElement返回值組成的數(shù)組。

  render(createElement) {
   //遍歷每一個VNode,用createElement函數(shù)在外層包裹class為control的p標簽,組成新的VNode數(shù)組
   const arry = this.$slots.default.map(VNode => {
    return createElement('p', {
     class: 'control'
    }, [VNode])
   })
   return createElement(
    'div', {
     class: this.groupClass
    }, arry,
   )
  },

渲染結果:

 如何在vue中使用render渲染函數(shù)

并且根據(jù)button-group的compact屬性可以切換不同的class,生成不同的效果


  {{item}}


  {{item}}

如何在vue中使用render渲染函數(shù)

關于如何在vue中使用render渲染函數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


分享題目:如何在vue中使用render渲染函數(shù)
當前鏈接:http://weahome.cn/article/gijcie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部