第17集丨Vue中的render函数

目录

一、脚手架中不能使用template配置

javascript 复制代码
// 引入vue
import Vue from 'vue'
import App from './App'

new Vue({
    el:'#app',
    template:'<h1>hhh</h1>',
    comments:{
        App
    },
    
})

上面案例中,配置了template属性,就会报错,如下图所示:

从上图的错误中,我们知道,处理方式有两种

  • 一种,使用带有模板编译器的vue
  • 第二种,使用render

因为Vue默认引用的是:dist/vue.runtime.esm.js

二、基本使用

render函数里没有用到this,所以可以简写为箭头函数,只有一个参数可以省略小括号,函数体中只有一个返回值语句,可以省略花括号{}。因此

javascript 复制代码
render(createElement){
      return createElement('h1','hhh')
  }

可以简写为:

javascript 复制代码
render: createElement => createElement('h1','hhh')

案例如下:

javascript 复制代码
// 引入vue
import Vue from 'vue'
import App from './App'

new Vue({
    el:'#app',
    // template:'<h1>hhh</h1>',
    comments:{
        App
    },
    // 将App组件放入容器中
   render: h => h(App),
})

三、关于不同版本的Vue

  • vue.jsvue.runtime.xxx.js的区别:
    (1). vue.is是完整版的Vue,包含:核心功能+模板解析
    (2). vue.runtime.xxx.js是运行版的Vue,只包含:核心功能,没有模板解析器。
  • 因为vue.runtime.xxx.js没有模板解析器,所以不能使用template配置项,需要使用render函数接收到的createElement函数去指定具体内容。
相关推荐
Cache技术分享2 分钟前
264. Java 集合 - 插入元素性能对比:LinkedList vs ArrayList
前端·后端
周不凢6 分钟前
摄像头云台控制(摄像头操作)
前端·vue.js
i_am_a_div_日积月累_6 分钟前
css排除样式:not:has
前端·css
Mapmost7 分钟前
【高斯泼溅】告别近看模糊!Mapmost如何重塑场景细节
前端
qiyue779 分钟前
裁员这么猛,AI修仙抗一波
前端·人工智能·ai编程
karshey15 分钟前
【前端】iView表单校验失效:Input已填入时,报错为未填入
前端·view design
写代码的皮筏艇25 分钟前
React中的'插槽'
前端·javascript
xhxxx25 分钟前
一个空函数,如何成就 JS 继承的“完美方案”?
javascript·面试·ecmascript 6
韩曙亮25 分钟前
【Web APIs】元素可视区 client 系列属性 ② ( 立即执行函数 )
前端·javascript·dom·client·web apis·立即执行函数·元素可视区
用户44455436542625 分钟前
Android协程底层原理
前端