vue实例配置对象中el、template、render的用法

 更新时间:2023年11月15日 09:31:27   作者:Wyyyy1024  
这篇文章主要介绍了vue实例配置对象中el、template、render的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

三者优先级

render > template > el

el

  • 只在用 new 创建实例时生效
  • 提供一个在页面上已存在的 DOM 元素作为 Vue 实例的挂载目标。
  • 可以是 CSS 选择器,也可以是一个 HTMLElement 实例
  • 在实例挂载之后,元素可以用 vm.$el 访问

template

  • 一个字符串模板作为 Vue 实例的标识使用。
  • 模板将会替换挂载的元素。
  • 挂载元素的内容都将被忽略,除非模板的内容有分发插槽

render

  • 字符串模板的代替方案,允许你发挥 JavaScript 最大的编程能力。
  • 该渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode

三者的联系

  • 当Vue选项对象中有render渲染函数时,Vue构造函数将直接使用渲染函数渲染DOM树
  • 当选项对象中没有render渲染函数时,Vue构造函数首先通过将template模板编译生成渲染函数,然后再渲染DOM树
  • 当Vue选项对象中既没有render渲染函数,也没有template模板时,会通过el属性获取挂载元素的outerHTML来作为模板,并编译生成渲染函数

进行DOM树的渲染时,render渲染函数的优先级最高,template次之且需编译成渲染函数,而挂载点el属性对应的元素若存在,则在前两者均不存在时,其outerHTML才会用于编译与渲染

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div class="vapp-1">{{ info }}</div>
    <div class="vapp-2">{{ info }}</div>
    <div class="vapp-3">{{ info }}</div>
    <script src="./js/vue.js"></script>
    <script>
      new Vue({
        el: ".vapp-1",
        data: {
          info: "这是通过el属性获取挂载元素的outerHTML方式渲染。",
        },
        template: "<div>这是template属性模板渲染。</div>",
        render: function (h) {
          return h("div", {}, "这是render属性方式渲染。");
        },
      });

      new Vue({
        el: ".vapp-2",
        data: {
          info: "这是通过el属性获取挂载元素的outerHTML方式渲染。",
        },
        template: "<div>这是template属性模板渲染。</div>",
      });

      new Vue({
        el: ".vapp-3",
        data: {
          info: "这是通过el属性获取挂载元素的outerHTML方式渲染。",
        },
      });
    </script>
  </body>
</html>
<!-- 结果-->
这是render属性方式渲染。
这是template属性模板渲染。
这是通过el属性获取挂载元素的outerHTML方式渲染。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue实现todolist单页面应用

    vue实现todolist单页面应用

    这篇文章主要为大家详细介绍了vue实现todolist单页面应用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • Vue渲染函数详解

    Vue渲染函数详解

    下面小编就为大家带来一篇Vue渲染函数详解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Vue3 Radio单选切换展示不同内容实现代码

    Vue3 Radio单选切换展示不同内容实现代码

    这篇文章主要介绍了Vue3 Radio单选切换展示不同内容,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • 一文详解Vue的响应式原则与双向数据绑定

    一文详解Vue的响应式原则与双向数据绑定

    使用 Vue.js 久了,还是不明白响应式原理和双向数据绑定的区别?今天,我们就一起来学习一下,将解释它们的区别,快跟随小编一起学习学习吧
    2022-08-08
  • Vue3的ts报错:类型"{}"上不存在属性"xxx"的两种彻底根治解决方法

    Vue3的ts报错:类型"{}"上不存在属性"xxx"的两种彻底根治解决方法

    这篇文章主要给大家介绍了关于Vue3的ts报错:类型"{}"上不存在属性"xxx"的两种彻底根治解决方法,这是最近做项目中遇到的一个问题,这里给大家总结下解决办法,需要的朋友可以参考下
    2023-08-08
  • vue引用public文件夹中文件的多种方式

    vue引用public文件夹中文件的多种方式

    由于一些演示需要对一些简单页面进行配置,由于打包build后的vue项目基本已经看不出原样,因此需要创建一个文件,并在打包的时候不会进行编译,所以文件放在public,这篇文章主要给大家介绍了关于vue引用public文件夹中文件的多种方式,需要的朋友可以参考下
    2024-02-02
  • 详解vue 组件

    详解vue 组件

    这篇文章主要介绍了详解vue 组件的相关知识,文中讲解非常细致,代码供大家参考学习,感兴趣的朋友可以了解下
    2020-06-06
  • vue事件监听函数on中的this指针域使用

    vue事件监听函数on中的this指针域使用

    这篇文章主要介绍了vue事件监听函数on中的this指针域使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • vue如何实现接口统一管理

    vue如何实现接口统一管理

    这篇文章主要介绍了vue如何实现接口统一管理,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • Vue打印错误日志问题

    Vue打印错误日志问题

    这篇文章主要介绍了Vue打印错误日志问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10

最新评论