Vue:render函数

render函数

当我们创建完vue脚手架后,在main的js,有这么一段代码:

new Vue({
  render: h => h(App),
}).$mount('#app')
})

上面一段代码是等同于下面:

new Vue({
	el:'#app',
	template:`<App></App>`,
	components:{App},
})

那为什么要第1种写法呢?问题就在于引入的vue的js文件,如下:

import Vue from 'vue'

这个实际上引入的是vue.runtime.esm.js,是精简版的vue文件不含模板解析器(vue.js才是完整版),不含模板解析器是解析不了组件里的template属性值的

因此通过render的方式替代模板解析器的作用,但和其不同的是:在开发时存在,但最终打包后是不存在的,减少空间占用

render最完整的写法如下:

  render(createElement){
    // createElement是一个函数,用于创建标签元素。传入App帮我们创建App标签
    return createElement(App);
  }

总结:
1.vue.js与vue.runtime.xxx.js的区别:
(1).vue.js是完整版的Vue,包含:核心功能+模板解析器。
(2).vue.runtime.xxx.js是运行版的Vue,只包含:核心功能;没有模板解析器。

	2.因为vue.runtime.xxx.js没有模板解析器,所以不能使用template配置项,需要使用
		render函数接收到的createElement函数去指定具体内容。
posted @   爱编程DE文兄  阅读(188)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
历史上的今天:
2020-07-20 e3商城_day02
点击右上角即可分享
微信分享提示