不具名插槽(默认插槽):有A组件和B组件,A组件中使用了B组件,则A组件是B组件的父组件_vsc中插槽的作用是什么">
当前位置:   article > 正文

vue插槽的理解和使用及作用域插槽_vsc中插槽的作用是什么

vsc中插槽的作用是什么

什么是插槽?

插槽就是子组件中的提供给父组件使用的一个占位符,用<slot></slot> 表示,父组件可以在这个占位符中填充任何模板代码,如 HTML、组件等,填充的内容会替换子组件的<slot></slot>标签。

具名插槽:<slot name="fruit"></slot>

不具名插槽(默认插槽):<slot></slot>

有A组件和B组件,A组件中使用了B组件,则A组件是B组件的父组件。

A组件中需要使用到B组件的地方:<B></B>

B组件中定义模板,有部分待定的内容可插入slot插槽暂代,然后在A组件中定义。

概念大概是:

A组件:

  1. <A>
  2. <B>
  3. 我是填充到A组件插槽中的内容
  4. </B>
  5. </A>

B组件:

  1. <B>
  2. <h1>第一行</h1>
  3. <slot>空着位置,等用到B组件的来填</slot>
  4. <h1>第二行</h1>
  5. </B>

总结:子组件(B)提供模板,中间可有插槽,父组件(A)使用模板组件(B),模板组件间的内容,作为填充到子组件插槽中的内容

作用域插槽

  1. <!DOCTYPE html>
  2. <html lang="zh-en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>插槽作用域</title>
  7. <style>
  8. .current {
  9. color: orange;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <div id="app">
  15. <!-- 水果列表 -->
  16. <fruit :list="flist">
  17. <!-- slot-scope是插槽slot传递来的属性的集合 -->
  18. <template slot-scope="slotProps">
  19. <strong v-if="slotProps.info.id==2" class="current">
  20. {{slotProps.info.name}}{{slotProps}}
  21. </strong>
  22. <span v-else>{{slotProps.info.name}}</span>
  23. </template>
  24. </fruit>
  25. </div>
  26. <!-- 引入Vue -->
  27. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  28. <script>
  29. Vue.component('fruit', {
  30. // fruit组件的属性
  31. props: ['list'],
  32. template: `
  33. <div>
  34. <ul>
  35. <li :key="item.id" v-for="item in list" >
  36. <slot :info="item"></slot>
  37. </li>
  38. </ul>
  39. </div>
  40. `,
  41. })
  42. var app = new Vue({
  43. el: '#app',
  44. data: {
  45. flist: [{
  46. id: 1,
  47. name: 'apple',
  48. }, {
  49. id: 2,
  50. name: 'banana',
  51. }, {
  52. id: 3,
  53. name: 'orange',
  54. }],
  55. }
  56. })
  57. </script>
  58. </body>
  59. </html>

运行结果:

slotProps是个对象,用来接收子组件传递来的参数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/106195
推荐阅读
相关标签
  

闽ICP备14008679号