vue插槽slot
前言
当父组件在使用一个子组件的时候,可以使用单标签的形式,也可以使用双标签的形式,比如<Child /> 或者<Child></Child>。当时使用双标签的形式时,如果我们在两个标签中放入一些内容,比如<Child>hello world</Child>,子组件是可以通过插槽slot来获取标签中的内容,下面是官网的几个demo
demo1
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="app"> <!-- 使用子组件 --> <navigation-link>这是父组件上的一些内容</navigation-link> </div> </body> </html> <script src="vue.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> // 注册子组件navigation-link Vue.component('navigation-link', { data() {}, // 如果 <navigation-link> 没有包含一个 <slot> 元素,则任何传入它的内容都会被抛弃。 template: ` <a v-bind:href="url" class="nav-link" > <slot></slot> </a>` }) new Vue({ el: '#app', data: { } }) </script>
demo2-具名插槽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="app"> <base-layout> <!-- template 也可以是个普通元素,请看footer的slot --> <template slot="header"> <h1>页面标题</h1> </template> <p>A paragraph for the main content.</p> <p>And another one.</p> <div slot="footer"> <mark>页面底部信息</mark> </div> </base-layout> </div> </body> </html> <script src="vue.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> // slot具名以后就可以插到对应的位置,否则规则跟非具名插槽一样 Vue.component('base-layout', { template: ` <div class="container"> <header> <slot name="header"></slot> </header> <main> <slot></slot> </main> <footer> <slot name="footer"></slot> </footer> </div>` }) new Vue({ el: '#app' }) </script>
demo3-默认值
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="app"> <Child>提交</Child> <!--当Child中间不传入内容时使用默认值--> <Child></Child> </div> </body> </html> <script src="vue.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> Vue.component('Child',{ template: ` <button type="submit"> <slot>Submit</slot> </button>` }); new Vue({ el: '#app' }) </script>
demo4-作用域插槽
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> </head> <body> <div id="app"> <todo-list :todos="todos"> <!-- 用slot-scope接收子组件回传的信息 --> <template slot-scope="slotProps"> <span v-if="slotProps.todo.isComplete"></span> {{ slotProps.todo.text }} </template> </todo-list> </div> </body> </html> <script src="vue.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> Vue.component('todo-list', { props: ['todos'], template: ` <ul> <li v-for="todo in todos" v-bind:key="todo.id"> <!-- 回传信息 --> <slot v-bind:todo="todo"> {{ todo.text }} </slot> </li> </ul>` }) new Vue({ el: '#app', data: { todos: [ { text: '买机械键盘', isComplete: true }, { text: '打羽毛球', isComplete: true }, { text: '去教会做礼拜', isComplete: false }] } }) </script>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Spring Cloud之量化分析应用续租的内存消耗
欢迎访问陈同学博客原文本文修改了三次,感谢 晓波同学 、帆哥 提的问题、建议与知识帮助。 在分享《Spring Cloud之极端续租间隔时间的影响》 后,晓波同学问:由于心跳频率过高导致出现新对象过多? 索性就试试 量化分析一次心跳带来的内存消耗!本文纯属好奇心驱使,无实际意义。 如何量化分析? 量化分析?那么多干扰因素,怎么个分析法? 测试中有黑盒、白盒测试,而JVM基本是个黑盒,只能通过各性能采集工具或利用JVM自身产生的性能数据来分析。 想起初高中生物对照试验中的 控制变量法,即各对照组中通常设置1各变量,其他条件保持一致。 那就准备一个实验组,一个对照组,先看看变量与影响因子。 变量 心跳频率:第一组心跳频率保持 1s/次,第二组心跳 10分钟/次(在试验期间内不进行心跳) 两组试验唯一不同的就是是否心跳,下面就尽量排除各种干扰因素。 影响因素 测试的机器实时资源情况干扰:同时运行两组试验,确保它们在相同环境下运行 GC的影响:尽量在应用启动稳定后(排除启用时的频繁GC)的第一次GC内完成试验,同时Metaspace设置为500M,避免因Metaspace引发Full GC 租...
- 下一篇
Sublime Text变为Python IDE环境(二)
上一篇写了如果安装Anaconda,由于Anaconda插件本身无法知道Python安装的路径,所以需要设置Python主程序的实际位置。选择Settings-Default选项,搜寻“python_interpreter” key, 并键入python主程序的磁盘位置。 选择Settings-Users选项,键入以下json数据。保存,重启ST3即可。 { "python_interpreter":"C:/ProgramData/Anaconda3/python.exe", "suppress_word_completions":true, "supperss_explicit_completions":true, "complete_parameters":true, } 参考sublime text3 下搭建python IDE环境 --Anaconda插件篇 知识在于点滴积累
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS6,CentOS7官方镜像安装Oracle11G
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器