Vue 作用域插槽

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="./vue.v2.6.10.dev.js"></script>
    </head>
    <body>
        <div id="app">
            <child>
            </child>
        </div>
        
        <script>
            Vue.component('child', {
                data: function() {
                    return {
                        list: [1, 2, 3, 4]
                    }
                },
                template: `
                    <div>
                        <ul>
                            <li v-for="item of list">
                                {{item}}
                            </li>
                        </ul>
                    </div>
                `,
            })
            
            var vm = new Vue({
                el: '#app',
            })
        </script>
    </body>
</html>

但是想 li 标签的内容由外部提供:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <script src="./vue.v2.6.10.dev.js"></script>
    </head>
    <body>
        <div id="app">
            <child>
                <template slot-scope="props">
                    <li>{{props.item}}</li>
                </template>
            </child>
        </div>
        
        <script>
            Vue.component('child', {
                data: function() {
                    return {
                        list: [1, 2, 3, 4]
                    }
                },
                template: `
                    <div>
                        <ul>
                            <slot v-for="item of list" :item=item>
                            </slot>
                        </ul>
                    </div>
                `,
            })
            
            var vm = new Vue({
                el: '#app',
            })
        </script>
    </body>
</html>

父组件向子组件传入一个作用域插槽,这个作用域插槽必须用 template 标签包围。