vue组件插槽与编译作用域

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<body>

<div id="app">
    <cpn>
        <!-- 插槽-插入 -->
        <!-- 注意,由于编译作用域的概念,这里是在#app的作用域,所以这里showIt使用的是app实例对象的属性 -->
        <span slot="center" v-show="showIt">
            你好
        </span>
    </cpn>
</div>


<template id="cpn">
    <div>
        <span>左边</span>
        <!-- slot:插槽   name="center"给插槽具名 -->
        <slot name="center">
            <!-- 插槽默认值 -->
            <span>中间</span>
        </slot>
        
        <span>右边</span>
    </div>

</template>
<script>    
    // 组件的插槽:
    //     组件的插槽也是为了让我们封装的组件更具扩展性
    //     让使用者可以决定组件内部的一些内容到底显示什么
    const app = new Vue({
        el: "#app",
        data: {
            message: '你好啊',
            showIt: 1
        },    
        /*注册组件*/
        components:{
            cpn: {
                template: '#cpn',
            }
        },
    
    })

</script>
</body>
</html>

 

posted @ 2020-02-04 19:37  cl94  阅读(673)  评论(0编辑  收藏  举报