Преглед изворни кода

pass createElement into render functions

Evan You пре 10 година
родитељ
комит
41e46476a5

+ 1 - 1
src/core/instance/render.js

@@ -69,7 +69,7 @@ export function renderMixin (Vue: Class<Component>) {
       resolveSlots(vm, _renderChildren)
     }
     // render self
-    let vnode = render.call(vm._renderProxy)
+    let vnode = render.call(vm._renderProxy, vm.$createElement)
     // return empty vnode in case the render function errored out
     if (!(vnode instanceof VNode)) {
       if (process.env.NODE_ENV !== 'production' && Array.isArray(vnode)) {

+ 2 - 4
test/unit/features/directives/on.spec.js

@@ -123,8 +123,7 @@ describe('Directive v-on', () => {
       data: {
         ok: true
       },
-      render () {
-        const h = this.$createElement
+      render (h) {
         return this.ok
           ? h('input', { on: { click: this.foo }})
           : h('input', { on: { input: this.bar }})
@@ -155,8 +154,7 @@ describe('Directive v-on', () => {
           template: '<div></div>'
         }
       },
-      render () {
-        const h = this.$createElement
+      render (h) {
         return this.ok
           ? h('test', { on: { foo: this.foo }})
           : h('test', { on: { bar: this.bar }})

+ 1 - 2
test/unit/features/directives/ref.spec.js

@@ -28,8 +28,7 @@ describe('Directive v-ref', () => {
   it('should work as a hyperscript prop', () => {
     const vm = new Vue({
       components,
-      render () {
-        const h = this.$createElement
+      render (h) {
         return h('div', null, [
           h('test', { ref: 'test' })
         ])

+ 1 - 2
test/unit/features/options/el.spec.js

@@ -29,8 +29,7 @@ describe('Options el', () => {
     el.innerHTML = '<span>{{message}}</span>'
     const vm = new Vue({
       el,
-      render () {
-        const h = this.$createElement
+      render (h) {
         return h('p', { staticAttrs: { id: 'app' }}, [
           h('span', {}, [this.message])
         ])

+ 2 - 4
test/unit/features/options/render.spec.js

@@ -3,8 +3,7 @@ import Vue from 'entries/web-runtime'
 describe('Options render', () => {
   it('basic usage', () => {
     const vm = new Vue({
-      render () {
-        const h = this.$createElement
+      render (h) {
         const children = []
         for (let i = 0; i < this.items.length; i++) {
           children.push(h('li', { staticClass: 'task' }, [this.items[i].name]))
@@ -25,8 +24,7 @@ describe('Options render', () => {
 
   it('allow null data', () => {
     const vm = new Vue({
-      render () {
-        const h = this.$createElement
+      render (h) {
         return h('div', null, 'hello' /* string as children*/)
       }
     }).$mount()