render命名是匿名函数,也没有参数,为啥调用的时候就有参数了

来源:3-2 createComponent

weibo_啊喂丶你能勤快点么_0

2021-08-05

黄老师 有点我不命名 render命名是匿名函数,也没有参数,为啥调用的时候就有参数了

render = function (){
  with(this){
	// <div id="app">{{a}}</div>
    return _c('div',{attrs:{"id":"app"}},[_v(" "+_s(a)+" ")])
  }
}
render.call(vm._renderProxy, vm.$createElement);

写回答

1回答

ustbhuangyi

2021-08-05

你前面写的是模板自动生成的 render 函数,没有参数,因为它内部的函数都是在 vm 上定义的,可以直接访问。
那么为啥执行 render 函数的时候要传递参数呢,这个主要是给手写 render 函数的场景用的,比如 

new Vue({
  render(h) {
    return h(App)
  }
}).$mount('#app')


0
2
ustbhuangyi
回复
weibo_啊喂丶你能勤快点么_0
https://mp.weixin.qq.com/s?__biz=MzIxNDc4MjEzNw==&mid=2247483729&idx=1&sn=c50e01bf06c86cf83637919f1dd5c199&chksm=97a31887a0d49191a62c634a45a52037bd8502f16bd0f2992435b1564595aeb8095718048ffb&token=630190640&lang=zh_CN#rd 这篇文章有提到,可以参考
2021-08-05
共2条回复

Vue.js 源码深入解析 深入理解Vue实现原理

全方位讲解 Vue.js 源码,进阶高级工程师

4984 学习 · 1037 问题

查看课程