官方文档其实已经讲得很详细,我根据文档,把官方的小案例实现了一下,这样更直观
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://unpkg.com/vue@2.3.3/dist/vue.js"></script> </head> <body> <div id="app"> <div> <!-- 单slot --> <v-one> <!-- 这里的所有内容会替换掉slot --> <p>初始化段落一</p> <p>初始化段落二</p> </v-one> <!-- 渲染结果 --> <!-- <div> <h1>组件标题</h1> <p>初始化段落一</p> <p>初始化段落二</p> <p>组件段落内容</p> <p>I am one</p> </div> --> <!-- 具名slot --> <v-two> <p slot="nav">我是导航</p> <p slot="main">我是内容</p> <p slot="footer">我是底部</p> </v-two> <!-- 渲染结果 --> <!-- <div> <nav> <p>我是导航</p> </nav> <main> <p>我是内容</p> </main> <footer> <p>我是底部</p> </footer> </div> --> <!-- 作用域插槽 --> <v-three> <!-- 父组件默认无法使用子组件数据 --> <template scope="props"> <p>{{props.text}}</p> </template> </v-three> <!-- 渲染结果 --> <!-- <div><p>I am three</p></div> --> </div> </div> <template id="one"> <div> <h1>组件标题</h1> <slot></slot> <p>组件段落内容</p> <p>{{one}}</p> </div> </template> <!-- 具名slot --> <template id="two"> <div> <nav> <slot name="nav"></slot> </nav> <main> <slot name="main"></slot> </main> <footer> <slot name="footer"></slot> </footer> </div> </template> <!-- 作用域插槽 --> <template id="three"> <div> <!-- 把数据传递给slot,这样父组件也可以访问three这个组件的数据 --> <slot :text="three"></slot> </div> </template> <script> new Vue({ el: '#app', components: { 'v-one': { template: '#one', data() { return { 'one': 'I am one' } } }, 'v-two': { template: '#two', data() { return { 'two': 'I am two' } } }, 'v-three': { template: '#three', data() { return { 'three': 'I am three' } } } } }); </script> </body> </html>
单个slot使用最简单,也是最常用的,当我们定义了一个子组件,父组件在使用的这个组件的时候,想在内部自定义一些初始化数据,这时候就可以用slot实现。
具名slot只是给slot加了name属性,在使用的时候可以引入多个。
作用域slot就比较强大了,我们知道子组件的数据,在父组件中是无法使用的,但是通过官方提供的扩展,可以轻松实现这一点。
渲染后效果图,可以直接自己在浏览器运行查看效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
本文向大家介绍详解vue使用插槽分发内容slot的用法,包括了详解vue使用插槽分发内容slot的用法的使用技巧和注意事项,需要的朋友参考一下 将父组件的内容放到子组件指定的位置叫做内容分发 单个插槽 父组件app.vue 子组件testSlot.vue 效果图: 多个插槽也叫具名插槽 具名插槽就是将某个名字的内容插到子组件对应名字里面去 父组件app.vue 子组件testSlot.vue 作用
1. 前言 本小节我们将介绍如何使用插槽slot,包括默认插槽、具名插槽、作用域插槽。插槽可以使组件的模版变得多样性,让用户在使用组件时可以自定义传入模版内容。在复杂组件中,当我们在使用多个插槽的时候将会是一个难点。但是也不必担心,只要我们将每个插槽类型的使用方法学透,相信面对任何复杂插槽的使用的时候都可以游刃有余。 2. 慕课解释 Vue 实现了一套内容分发的 API,将 元素作为承载分发内容的
本文向大家介绍详解vue2.6插槽更新v-slot用法总结,包括了详解vue2.6插槽更新v-slot用法总结的使用技巧和注意事项,需要的朋友参考一下 在 2.6.0 中,我们为具名插槽和作用域插槽引入了一个新的统一的语法 (即 v-slot 指令)。它取代了 slot 和 slot-scope 这两个目前已被废弃但未被移除且仍在文档中的特性。新语法的由来可查阅 RFC。 引vue官方文档 之前做
本文向大家介绍vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】,包括了vue 使用插槽分发内容操作示例【单个插槽、具名插槽、作用域插槽】的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了vue 使用插槽分发内容操作。分享给大家供大家参考,具体如下: 单个插槽 除非子组件模板包含至少一个 <slot> 插口,否则父组件的内容将会被丢弃。当子组件模板只有一个没有属性的插槽时,父
本文向大家介绍jQuery树插件zTree使用方法详解,包括了jQuery树插件zTree使用方法详解的使用技巧和注意事项,需要的朋友参考一下 最近要做一个树结构,就使用了jQuery 的树插件,感觉还不错,做个随笔 页面的基本结构是这样的 这里的样式是使用了metroStyle文件夹里的类bootstrap风格,当然首先需要下载ztree插件,直接百度即可,下载完成后由对应的api和一些例子,这
本文向大家介绍jquery表单插件Autotab使用方法详解,包括了jquery表单插件Autotab使用方法详解的使用技巧和注意事项,需要的朋友参考一下 Autotab也是一款功能专一的表单插件,它提供了自动跳格的功能,当用户输入的字符数一旦超过已定义的最大长度,则会根据事先设置的目标自动跳转到相应元素上,省却了 用户按【Tab】键的麻烦。最典型的应用就是输入IP地址、软件激活码等地方了,我们做