Vue選項/DOM

el

  • 類型:string | Element

  • 限制:只在由 new 創建的實例中遵守。

  • 詳細:
    提供一個在頁面上已存在的 DOM 元素作爲 Vue 實例的掛載目標。可以是 CSS 選擇器,也可以是一個 HTMLElement 實例。
    在實例掛載之後,元素可以用 vm.$el 訪問。
    如果在實例化時存在這個選項,實例將立即進入編譯過程,否則,需要顯式調用 vm.$mount() 手動開啓編譯。

提供的元素只能作爲掛載點。不同於 Vue 1.x,所有的掛載元素會被 Vue 生成的 DOM 替換。因此不推薦掛載 root 實例到 <html> 或者 <body> 上。
如果 render 函數和 template 屬性都不存在,掛載 DOM 元素的 HTML 會被提取出來用作模板,此時,必須使用 Runtime + Compiler 構建的 Vue 庫。

template

  • 類型:string
  • 詳細:
    一個字符串模板作爲 Vue 實例的標識使用。模板將會 替換 掛載的元素。掛載元素的內容都將被忽略,除非模板的內容有分發插槽。
    如果值以 # 開始,則它將被用作選擇符,並使用匹配元素的 innerHTML 作爲模板。常用的技巧是用 <script type="x-template"> 包含模板。
    出於安全考慮,你應該只使用你信任的 Vue 模板。避免使用其他人生成的內容作爲你的模板。
    如果 Vue 選項中包含渲染函數,該模板將被忽略。

render

  • 類型:(createElement: () => VNode) => VNode
  • 詳細:
    字符串模板的代替方案,允許你發揮 JavaScript 最大的編程能力。該渲染函數接收一個 createElement 方法作爲第一個參數用來創建 VNode
    如果組件是一個函數組件,渲染函數還會接收一個額外的 context 參數,爲沒有實例的函數組件提供上下文信息。
    Vue 選項中的 render 函數若存在,則 Vue 構造函數不會從 template 選項或通過 el 選項指定的掛載元素中提取出的 HTML 模板編譯渲染函數。

renderError

  • 類型:(createElement: () => VNode, error: Error) => VNode
  • 詳細:
    只在開發者環境下工作。
    render 函數遭遇錯誤時,提供另外一種渲染輸出。其錯誤將會作爲第二個參數傳遞到 renderError。這個功能配合 hot-reload 非常實用。

示例:

new Vue({
  render (h) {
    throw new Error('oops')
  },
  renderError (h, err) {
    return h('pre', { style: { color: 'red' }}, err.stack)
  }
}).$mount('#app')
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章