Vue选项/DOM

以你之姓@ 2024-04-17 05:54 162阅读 0赞

Vue选项/DOM

  • el
  • template
  • render
  • renderError

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 非常实用。

示例:

  1. new Vue({
  2. render (h) {
  3. throw new Error('oops')
  4. },
  5. renderError (h, err) {
  6. return h('pre', { style: { color: 'red' }}, err.stack)
  7. }
  8. }).$mount('#app')

发表评论

表情:
评论列表 (有 0 条评论,162人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue虚拟DOM

    怎么使用虚拟DOM Vue在2.0版本引入了vdom,其vdom是基于snabbdom库所做的修改。snabbdom是一个开源的vdom库。snabbdom的主要作用就是将

    相关 Vue基础----选项

    propsData Option 全局扩展的数据传递 propsData 不是和属性有关,他用在全局扩展时进行传递数据。先回顾一下全局扩展的知识,作一个 的扩展标签出来