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函数去指定具体内容。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
2020-07-20 e3商城_day02