<!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>