鍍金池/ 問答/HTML/ vue配置的這幾種寫法有什么區(qū)別?

vue配置的這幾種寫法有什么區(qū)別?

vue配置這幾種寫法有什么區(qū)別?有點(diǎn)懵:

第1種:vue-cli 3.0 的main.js里面是這樣寫的:

new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");

第2種:網(wǎng)上一篇博客是這樣寫的

new Vue({
    el: '#app',
    router,
    axios,
    store,
    apolloProvider,
    template: '<App/>',
    components: { App }
});

第3種:vue-apollo里面是這樣寫的:https://akryum.github.io/vue-...

new Vue({
  el: '#app',
  provide: apolloProvider.provide(),
  render: h => h(App),
})

第4種:百度lavas的app.js中沒有new Vue(),但有下面一段: 文檔 https://github.com/lavas-proj...

export function createApp() {
    let router = createRouter();
    let store = createStore();
    let App = Vue.extend({
        router,
        store,
        ...AppComponent
    });
    return {App, router, store};
}



問題:

1、第1種和第3種寫法里面有一句render: h => h(App),這個語句是什么意思?h是什么東西?
2、第2種寫法里面有下面兩句,表示什么意思?

template: '<App/>',
components: { App }

3、第2種寫法里面有一句apolloProvider,,第3種寫法里面有一句provide: apolloProvider.provide(),兩個有什么區(qū)別?

4、第4種百度lavas的寫法看不懂,請大神幫解釋一下。

謝謝各位大神先!

回答
編輯回答
陌南塵

關(guān)于問題1 ,如果引用的是runtime版vue ,沒有模板編譯功能,所以不能使用模板,要使用渲染函數(shù)。

2017年10月16日 01:52
編輯回答
情未了
  • 第1種和第3種寫法里面有一句render: h => h(App),這個語句是什么意思?h是什么東西?

這是 ES6 中的新語法 箭頭函數(shù) 等同于


function(h){
    return h(App);
}
  • 第2種寫法里面有下面兩句,表示什么意思?

使用自定義組件
  • 第2種寫法里面有一句apolloProvider,,第3種寫法里面有一句provide: apolloProvider.provide(),兩個有什么區(qū)別?

第2種寫法里面有一句apolloProvider 也是Es6的新語法 等同于

apolloProvider: apolloProvider,
  • 第4種百度lavas的寫法看不懂,請大神幫解釋一下。

// exprot 暴露createApp方法 用于 import
export function createApp() {
    let router = createRouter();
    let store = createStore();
    // 使用基礎(chǔ) Vue 構(gòu)造器,創(chuàng)建一個“子類”。參數(shù)是一個包含組件選項的對象。 摘自Vue官方
    // https://cn.vuejs.org/v2/api/index.html#Vue-extend
    let App = Vue.extend({
        router,
        store,
        ...AppComponent // 還是Es6的語法 展開變量內(nèi)容 見 1,
    });
    return {App, router, store};// Return 一個對象 有問題嗎?
}

1,擴(kuò)展運(yùn)算符
未答到的均表無法解答
2018年2月23日 06:17