请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

黄老师 有点我不命名 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回答

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

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


0 回复 有任何疑惑可以回复我~
  • 原来是这样,还有个小问题,为啥要用with,按说这个不是被唾弃的么
    本质上有点像解构
    回复 有任何疑惑可以回复我~ 2021-08-05 16:38:46
  • https://mp.weixin.qq.com/s?__biz=MzIxNDc4MjEzNw==&amp;mid=2247483729&amp;idx=1&amp;sn=c50e01bf06c86cf83637919f1dd5c199&amp;chksm=97a31887a0d49191a62c634a45a52037bd8502f16bd0f2992435b1564595aeb8095718048ffb&token=630190640&lang=zh_CN#rd
    
    这篇文章有提到,可以参考
    回复 有任何疑惑可以回复我~ 2021-08-05 16:41:06
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信