2017-03-01 65 views
4

docs我不完全瞭解什麼時候應該使用render: h => h(App)函數。當我應該使用渲染:h => h(App)?

例如,我有很簡單的Vue公司的應用程序:

import Vue from 'vue' 
import App from './App.vue' 

new Vue({ 
    el: '#app', 
    components: { App } 
}) 

是什麼,當我需要添加到代碼的情況:render: h => h(App)

+1

您可以使用渲染功能來產生輸出爲標準VUE相同的,但你有渲染功能,因爲你有更多的控制和可以做的事情編程,你是不是更多的flexibilty能夠與標準vue – vbranden

回答

7

在您發佈的示例App.vue代表主應用程序包裝 - 所有其他組件.vue相關的文件將在這裏。

因此,在您的Vue實例中,您定義了組件對象,並添加了應用程序組件,但您將如何精確地將該組件安裝到實例並顯示出來?

  • 這不是.vue文件,所以您不必模板標籤選項,這是純粹的js文件
  • 你不能把<App></App>template屬性,因爲你正在使用運行時只能建所以模板選項不可用

該選項使用渲染函數,因爲這是VueJS在引擎下做的。它需要您的模板,然後模板編譯器將其轉換爲渲染函數。

相反的渲染功能,您可以使用傳播運營商:

import Vue from 'vue' 
import App from './App.vue' 

new Vue({ 
    el: '#app', 
    ...App 
}) 

最後,作爲文檔說:

Vue公司建議使用模板來建立你的HTML中的絕大多數 案例。但是,在某些情況下,您確實需要JavaScript的完整編程能力 。這就是你可以使用渲染 功能