欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue render函數(shù)使用詳細講解

 更新時間:2023年01月17日 15:12:09   作者:AI3D_WebEngineer  
vue中的render函數(shù),它返回的是一個虛擬節(jié)點vnode,也就是我們要渲染的節(jié)點,下面這篇文章主要給大家介紹了關于Vue中render函數(shù)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

Dom

在瀏覽器中通過js來操作DOM的操作性能很差,于是虛擬Dom應運而生。虛擬Dom就是在js中模擬DOM對象樹來優(yōu)化DOM操作的一種技術或思路。

虛擬DOM并不是真正意義上的DOM,它作為一個輕量級的JavaScript對象,在狀態(tài)發(fā)生變化時,會進行Diff運算,來更新發(fā)生變化的DOM,對于未發(fā)生變化的DOM節(jié)點,不予操作,由于不是全部重繪,大大提高更新渲染性能。

什么是render函數(shù)

在vue中我們使用模板HTML語法組建頁面,通過render函數(shù)用js語言來構建DOM。

因為vue是虛擬DOM,所以在拿到template模板時也要轉譯成VNode的函數(shù),而用render函數(shù)構建DOM,vue就免去了轉譯的過程。

render函數(shù)構建DOM需要用到vue提供的工具createElement函數(shù),約定簡寫h。

render函數(shù)的返回值(VNode)

VNode(即:虛擬節(jié)點),也就是我們要渲染的節(jié)點。

template與render

Template適合邏輯簡單,render適合復雜邏輯。render的性能較高,template性能較低。

當存在template與render時,優(yōu)先展示template(render不展示)

<template>
  <div>gggg</div>
</template>
...
render() {
    return <div>我收到的</div>;
}

簡單的render函數(shù)

render:(h) => {
    return h('div',{
      //給div綁定value屬性
        props: {
            value:''
        },
        //給div綁定樣式
        staticStyle:{
            width:'30px'
        }, 
        //給div綁定點擊事件  
        on: {
            click: () => {
                console.log('點擊事件')
            }
        },
    })
}    

ts-vue的寫法

render() {
    return this.$createElement('div', {
      on: {
        ...this.$listeners,
        click: event => {
          console.log(event);
        },
      },
      props: this.props || {value:''},
      attrs: {
        businessId: this.field.pkId,
      },
      style: {
        width:'30px'
      }
    });
  }
 render() {
    return (
      <thead>
        <tr class="ant-table-thead--extra">
          {this.title}
        </tr>
        {this.$slots.default}
      </thead>
    );
  }

循環(huán)構建:

 render() {
    return (
      <ACheckboxGroup
        class="checkbox-list"
        value={this.value.map(item => item.id)}
      >
        {this.dataList.map(item => (
          <ACheckbox
            key={item.id}
            checked={this.checked(item)}
            value={item.id}
            onChange={$event => this.handleChange($event, item)}
          >
            {item.name}
          </ACheckbox>
        ))}
      </ACheckboxGroup>
    );
  }

分開定義引用:

render() {
    const triggerAction = (
      <div class="button-list-content--item">
        <span>{this.$t(TriggerActionNameEnum[this.value.triggerAction])}</span>
      </div>
    );
    const formName = (
      <div class="button-list-content--item">
        <span>{this.value?.triggerData?.formName || ''}</span>
      </div>
    );
    const updateFields = (
      <div class="button-list-content--item">
        <span class="button-list-content--field" title={this.updateFieldName}>
          {this.updateFieldName}
        </span>
      </div>
    );
    return this.value.triggerAction === TriggerActionEnum.UPDATE ? (
      <div>
        {triggerAction}
        {updateFields}
      </div>
    ) : (
      <div>
        {triggerAction}
        {formName}
      </div>
    );
  }

動態(tài)綁定

render() {
    const { setting } = this.data;
    return (
        <div class={this.$style.item}>
          <FormCardStyle silhouette={true} type={setting.template} />
        </div>
    );
  }

什么時候使用Render

自定義組件的時候。

<script>
    import { Component, Prop, Vue } from 'vue-property-decorator';
    @Component()
    class Wrap extends Vue {
       render() {
         return <div>自定義組件A</div>
       }
    }
    @Component()
    export default class FormTableActionBar extends Vue {
        ...
        render() {
            return (
                <div>
                    <p>下面是自定義組件A</p>
                    <Wrap></Wrap>
                </div>
            )
        }
    }
</script>

到此這篇關于Vue render函數(shù)使用詳細講解的文章就介紹到這了,更多相關Vue render函數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問題

    vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問題

    這篇文章主要介紹了vue在antDesign框架或elementUI框架組件native事件中觸發(fā)2次問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • 基于Vue單文件組件詳解

    基于Vue單文件組件詳解

    下面小編就為大家?guī)硪黄赩ue單文件組件詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue中provide、inject的使用方法案例詳解

    vue中provide、inject的使用方法案例詳解

    本教程是介紹如何在vue中使用provide和inject,在 Vue 中,provide 和 inject 是用于實現(xiàn)祖先組件向后代組件傳遞數(shù)據(jù)的一種方式,對vue中provide、inject的使用方法感興趣的朋友一起看看吧
    2024-02-02
  • React?Diff算法不采用Vue的雙端對比原因詳解

    React?Diff算法不采用Vue的雙端對比原因詳解

    這篇文章主要介紹了React?Diff算法不采用Vue雙端對比算法原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07
  • vue中使用echarts并根據(jù)選擇條件動態(tài)展示echarts圖表

    vue中使用echarts并根據(jù)選擇條件動態(tài)展示echarts圖表

    雖然老早就看過很多echarts的例子, 但自己接觸的項目中一直都沒有真正用到過,直到最近才開始真正使用,下面這篇文章主要給大家介紹了關于vue中使用echarts并根據(jù)選擇條件動態(tài)展示echarts圖表的相關資料,需要的朋友可以參考下
    2023-12-12
  • VUE中如何渲染Echarts動畫柱狀圖

    VUE中如何渲染Echarts動畫柱狀圖

    這篇文章主要介紹了VUE中如何渲染Echarts動畫柱狀圖問題,具有很好的參考價值,希望對大家有所幫助。
    2023-03-03
  • ElementUI下拉組件el-select一次從后端獲取選項并設置默認值方式

    ElementUI下拉組件el-select一次從后端獲取選項并設置默認值方式

    這篇文章主要介紹了ElementUI下拉組件el-select一次從后端獲取選項并設置默認值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue兩個同級組件傳值實現(xiàn)

    Vue兩個同級組件傳值實現(xiàn)

    Vue組件之間是有聯(lián)系的,避免不了組件之間要互相傳值,那么如何實現(xiàn)Vue兩個同級組件傳值,本文就來介紹一下,感興趣的可以了解一下
    2021-07-07
  • vue路由組件按需加載的幾種方法小結

    vue路由組件按需加載的幾種方法小結

    這篇文章主要介紹了vue路由組件按需加載的幾種方法小結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • vue中的主動觸發(fā)點擊事件

    vue中的主動觸發(fā)點擊事件

    這篇文章主要介紹了vue中的主動觸發(fā)點擊事件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04

最新評論