登录  /  注册
博主信息
博文 145
粉丝 7
评论 7
访问量 159513
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
Vue扩展知识:组件插槽、具名插槽和插槽作用域
李东亚¹⁸⁰³⁹⁵⁴⁰¹²⁰
原创
1048人浏览过

1.代码练习

  1. <!DOCTYPE html>
  2. <html lang="zh">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  7. <title>Vue插槽</title>
  8. <script src="vue.js"></script>
  9. </head>
  10. <body>
  11. <div class="app">
  12. <child>
  13. <!-- 在使用子组件时(插槽也可以)可以直接使用父组件的数据 -->
  14. <div slot="one"><h1>{{name}}</h1></div>
  15. <!-- 子组件重定义插槽内容时可以使用子组件数据,需要子组件插槽定义时:帮数据绑定到插槽的自定义属性上;
  16. 在调用子组件插槽时,通过slot-scope属性来获取插槽对象,通过插槽对象上的定义的属性获取子组件数据 -->
  17. <div slot="two" slot-scope="slot">
  18. <ol>
  19. <li v-for="n of slot.data">{{n}}</li>
  20. </ol>
  21. </div>
  22. </child>
  23. <child></child>
  24. </div>
  25. <template id="child">
  26. <div>
  27. <slot name="one"><h1>插槽自定义内容</h1></slot>
  28. <slot name="two" :data="arr"><ul>
  29. <li v-for="n of arr">{{n}}</li>
  30. </ul></slot>
  31. </div>
  32. </template>
  33. </body>
  34. <script type="text/javascript">
  35. let child={
  36. // props:["name"],
  37. template:"#child",
  38. data(){
  39. return {
  40. arr:[1,2,3,4,5,6],
  41. }
  42. }
  43. }
  44. const vm=new Vue({
  45. data:{
  46. name:"ldy",
  47. },
  48. el:".app",
  49. components:{
  50. child,
  51. }
  52. });
  53. </script>
  54. </html>

代码运行结果

有关组件插槽的知识总结

1.在创建组件时,可以通过<slot></slot>标签创建插槽,插槽中可以填入默认数据信息;插槽可以通过name属性定义插槽的名字(具名插槽定义)。
2.在调用组件时,组件中自定义的标签内容,自动填充到组件插槽中的文职,如果没有自定义内容,则显示插槽中的默认数据信息;,在调用时通过自定义标签的slot属性来关联插槽(具名插槽的使用)
3.在调用组件时,插槽中自定义的html标签可以使用父组件中的数据
4.使用子组件时,插槽中自定义内容,可以使用子组件数据
5.插槽作用域:

  • 在定义插槽时,可以通过自定义属性绑定子组件数据:把子组件数据绑定到当前插槽对象上;
  • 在调用组件时,通过slot-scope属性来绑定插槽对象,就可以获得绑定在插槽对象上的数据
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学