请稍等 ...
×

采纳答案成功!

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

_render 时,首次调用 vnode = render.call(vm._renderProxy, vm.$createElement),参数2好像没被调用

我在看 KaTeX parse error: Expected 'EOF', got '的' at position 7: mount 的̲流程中发现 _render 中…createElement),我知道这是获取 vnode 对象的方法,然后就去找这个 render 在哪里定义的,然后发现它是在带模板编译器的 $mount 函数中通过 compileToFunctions 函数获取到的,然后追到源头发现是 createCompiler —》 generate 函数返回的 code.render,然后我看了这个返回实现,其实是也就是这个 with(this){return ${code}} 字符串,它编译成函数之后,应该参数也只有一个 this,我就想在 _render 中的 vnode = render.call(vm._renderProxy, vm.KaTeX parse error: Expected 'EOF', got '这' at position 16: createElement) 这̲部分,传入的参数2感觉好像都没…createElement 这个函数?

正在回答

1回答

render 函数第二个参数有用啊,当用户手写 render 函数的时候,就可以使用这个参数了 

0 回复 有任何疑惑可以回复我~
  • 提问者 染丶墨3614535 #1
    哦?那我这么理解可不可以,分两个分支:
    1、我看到的这个 createCompiler —》 generate 生成的 render,是编译模板生成的,它返回的是 with(this){return ${code}} 字符串,这个部分用不到参数2 $createElement;
    2、用户自定义的 render 函数中,才会用到这个参数2,也就是我们平时调用的 h('div', {...}, '...') 来创建元素;
    回复 有任何疑惑可以回复我~ 2019-11-12 11:57:44
  • ustbhuangyi 回复 提问者 染丶墨3614535 #2
    嗯,是这样的
    回复 有任何疑惑可以回复我~ 2019-11-12 15:47:35
  • 提问者 染丶墨3614535 #3
    黄老牛逼( ̄▽ ̄)"
    回复 有任何疑惑可以回复我~ 2019-11-16 14:56:31
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信