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

Vue Render函數(shù)原理及代碼實例解析

 更新時間:2020年07月30日 14:41:10   作者:viewts  
這篇文章主要介紹了Vue Render函數(shù)原理及代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

簡單的說,在vue中我們使用模板HTML語法組建頁面的,使用render函數(shù)我們可以用js語言來構建DOM

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

當使用render函數(shù)描述虛擬DOM時,vue提供一個函數(shù),這個函數(shù)是就構建虛擬DOM所需要的工具。官網(wǎng)上給他起了個名字叫createElement。還有約定的簡寫叫h

雖然在render里使用createElement函數(shù)創(chuàng)建DOM節(jié)點不是很直觀,但是在部分獨立組件的設計中還是可以滿足一些特殊需求的。一個簡單的render示例如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <my-component :list="list"></my-component>
  </div>
  <script src="vue.js"></script>
  <script>
    Vue.component('my-component', {
      props: {
        list: {
          type: Array,
          default: () => []
        }
      },
      render(createElement) {
        if (this.list.length) {
          return createElement('ul', this.list.map(item => createElement('li', item)))
        } else {
          return createElement('p', 'Empty list')
        }
      }
    })
    new Vue({
      el: '#app',
      data: {
        list: ['html', 'css', 'javascript']
      }
    })
  </script>
</body>
</html>

另外,由于v-if,v-else,v-show等指令都無法在render里使用,需要自己手動實現(xiàn),拿常用的v-model舉個栗子:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

Vue.component('my-component', {
  data() {
    return {
      message: ''
    }
  },
  render(createElement) {
    return createElement(
      'div',
      [
        createElement(
          'input',
          {
            on: {
              input: e => this.message = e.target.value
            }
          }
        ),
        createElement('p', this.message)
      ]
    )
  }
})

相關文章

  • vue+webpack 打包文件 404 頁面空白的解決方法

    vue+webpack 打包文件 404 頁面空白的解決方法

    下面小編就為大家分享一篇vue+webpack 打包文件 404 頁面空白的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • VUE解決 v-html不能觸發(fā)點擊事件的問題

    VUE解決 v-html不能觸發(fā)點擊事件的問題

    今天小編就為大家分享一篇VUE解決 v-html不能觸發(fā)點擊事件的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Vue實現(xiàn)模糊查詢的簡單方法實例

    Vue實現(xiàn)模糊查詢的簡單方法實例

    這篇文章主要給大家介紹了關于Vue實現(xiàn)模糊查詢的簡單方法,在vue中,前端模糊搜索主要是用computed屬性實現(xiàn),本文通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • 在vue3項目中給頁面添加水印的實現(xiàn)方法

    在vue3項目中給頁面添加水印的實現(xiàn)方法

    這篇文章主要給大家介紹一下在vue3項目中添加水印的實現(xiàn)方法,文中有詳細的代碼示例供大家參考,具有一定的參考價值,感興趣的小伙伴跟著小編一起來看看吧
    2023-08-08
  • vite+vue3.0+ts+element-plus快速搭建項目的實現(xiàn)

    vite+vue3.0+ts+element-plus快速搭建項目的實現(xiàn)

    本文將結合實例代碼,介紹vite+vue3.0+ts+element-plus快速搭建項目的實現(xiàn),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • Vue-cli Eslint在vscode里代碼自動格式化的方法

    Vue-cli Eslint在vscode里代碼自動格式化的方法

    本篇文章主要介紹了Vue-cli Eslint在vscode里代碼自動格式化的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-02-02
  • 快速掌握Vue3.0中如何上手Vuex狀態(tài)管理

    快速掌握Vue3.0中如何上手Vuex狀態(tài)管理

    Vuex 是一個專為 Vue.js 應用程序開發(fā)的狀態(tài)管理模式,本文給大家分享Vue3.0中快速上手Vuex狀態(tài)管理的方式,本文通過實例代碼講解的很詳細,對大家學習Vuex狀態(tài)管理相關知識有很大的幫助,感興趣的朋友一起學習吧
    2021-05-05
  • vue使用driver.js完成頁面引導功能的示例詳解

    vue使用driver.js完成頁面引導功能的示例詳解

    在Vue中,driver.js通常是指用于實現(xiàn)用戶引導和教程功能的JavaScript庫,它可以幫助開發(fā)者在應用程序中創(chuàng)建交互式的引導和教程,以引導用戶了解應用程序的不同功能和界面,本文就簡單的給大家介紹一下vue如何使用driver.js完成頁面引導功能
    2023-08-08
  • Console高級用法總結

    Console高級用法總結

    Console 對象提供了瀏覽器控制臺調試的接口。在不同宿主環(huán)境上它的工作方式可能不一樣,但通常都會提供一套共性的功能,本文主要總結了Console的一些高級用法,感興趣的小伙伴可以參考一下
    2023-04-04
  • vue router帶參數(shù)頁面刷新或回退參數(shù)消失的解決方法

    vue router帶參數(shù)頁面刷新或回退參數(shù)消失的解決方法

    這篇文章主要介紹了vue router帶參數(shù)頁面刷新或回退參數(shù)消失的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02

最新評論