render函数的简单使用

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <title>Document</title>
</head>

<body>
    <div id="app">
        <child :level=1>hello Vue</child>
        <child :level=6>
            <span slot="footer">span</span>
            <p slot="header">header slot<span>span</span></p>
        </child>
    </div>
    <script src="node_modules/vue/dist/vue.js"></script>//使用时改为自己的vue路径
    <script>
    Vue.component('child', {
        render: function(createElement) {
            return createElement('h'+ this.level, {
                'class': {
                    foo: true,
                    bar: true
                },
                style: {
                    color: "red"
                },
                attrs: {
                    id: 'foo',
                    'data-id': 'bar'
                },
                domProps: {
                    //
                },
                on: {
                    click: this.clickit
                },
            },
            [this.$slots.default]
           )
        },
        template: '<div v-if="level===1"><slot></slot></div>',
        props: {
            level: {
                type: Number,
                required: true
            }
        },
        methods: {
            clickit: function() {
                console.log('click')
            }
        }
    })
    new Vue({
    	el:"#app"
    })
    </script>
</body>

</html>

  

原文地址:https://www.cnblogs.com/qq364735538/p/7299023.html