I'm trying to create a rendered component that will do something when I click on it:

```
// A normal Vue component using a render function
Vue.component('greeting', {
    methods: {
        sayHello(){
            alert('hello')
        }

    },
    render(createElement){
        var self = this
        return createElement(
            'button', 
            {
                '@click': self.sayHello
            },
            'if you click here I will say hello')
    }
})

new Vue({ 
    el: '#app'
})

```

I'm expecting an alert when I click on the button. As far as I can tell, this will render something like

```
<button @click="sayHello" />

```

where the method sayHello is defined in the Vue instance.

Why doesn't this work?

<https://codepen.io/dvdgdnjsph/pen/NWNwYOQ>