当前位置:首页 > 程序心得 > 正文内容

vue使用插槽slot整理

admin4年前 (2021-12-01)程序心得179

插槽

  • 插槽相当于一个占位符,当没有内容传递过去的时候会显示插槽的内容,有内容时不会显示插槽的内容

作用域插槽

  • 子组件的插槽传递数据给父组件

    • 父组件 v-slot:default = <插槽数据的变量名> 这个自定义的变量名实际是通过一个参数传递到函数中,可以通过解构来简化语法: v-slot:default = "{插槽数据的对象名}" 

    • 子组件 <slot :插槽数据的变量名=<要传递的数据变量名></slot>

具名插槽

  • 一个组件中可以使用多个插槽,为了区分每一个插槽可以通过name属性设置名字

  • 在父组件中使用具名插槽时,把要插入的内容放置在template节点

    • 使用v-slot:<插槽的name值> 绑定插槽

    • v-slot语法糖:#

  • 在子组件既有具名插槽又有默认插槽时,如果父组件不使用v-slot绑定插槽,会把所有的内容都插入在默认插槽

<template>
  <div class="home">
    <img alt="Vue logo" src="../assets/logo.png">
    <HelloWorld>
      <!-- 作用域插槽:子组件的插槽传递数据给父组件 
       父组件 v-slot:default = <插槽数据的变量名>,这个自定义的变量名实际是通过一个参数传递到函数中,可以通过解构来简化语法: v-slot:default = "{插槽数据的对象名}" -->
      <template v-slot:default="{userInfo}">
        {{userInfo.name + '-' + userInfo.age}}
      </template>
      <!-- 具名插槽
      在父组件中使用具名插槽时,把要插入的内容放置在template节点
      使用v-slot:<插槽的name值> 绑定插槽
      v-slot语法糖:# -->
      <template #h3="{h3Msg}">
        {{h3Msg}}
      </template>
    </HelloWorld>
  </div>
</template>

<script>
// @ is an alias to /src
import HelloWorld from '@/components/HelloWorld.vue'

export default {
  name: 'Home',
  components: {
    HelloWorld
  },
  data() {
    return {
      msg: 'Welcome to Your Vue.js App',
    }
  },
}
</script>


 <template>
  <div class="hello">
    <h1>
      <!-- 插槽
      插槽相当于一个占位符,当没有内容传递过去的时候会显示插槽的内容,有内容时不会显示插槽的内容 -->
      <slot :userInfo="userInfo">{{ msg }}</slot>
    </h1>
    <h3>
      <!-- 具名插槽
      一个组件中可以使用多个插槽,为了区分每一个插槽可以通过`name`属性设置名字
      在子组件既有具名插槽又有默认插槽时,如果父组件不使用v-slot绑定插槽,会把所有的内容都插入在默认插槽 -->
      <slot name="h3" :h3Msg="h3Msg"></slot>
    </h3>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      msg: 'default msg',
      userInfo: {
        name: 'Lily',
        age: 23
      },
      h3Msg: "h3 msg"
    }
  }
}
</script>


分享到:

扫描二维码推送至手机访问。

版权声明:本文由云河空间发布,如需转载请注明出处。

本文链接:https://yuyunhe.cn/index.php/post/312.html

分享给朋友:
返回列表

上一篇:hadoop-kerberos

没有最新的文章了...

“vue使用插槽slot整理” 的相关文章

月薪3万的程序员都避开了哪些坑

月薪3万的程序员都避开了哪些坑

程序员薪水有高有低,有的人一个月可能拿30K、50K,有的人可能只有2K、3K。同样有五年工作经验的程序员,可能一个人每月拿20K,一个拿5K。是什么因素导致了这种差异?我特意总结了容易导致薪水低的九大行为表现,避开这些大坑,你就离高薪不远了。习惯即刻回报他不懂得只有春天播种,秋天才会有收获。刚刚付...

SVN Skipped 'xxx' -- Node remains in conflict 错误的解决办法

svn提交发现错误#cd /home/svn/app/# svn upUpdating '.':Skipped 'xxx' -- Node remains in conflictAt revision 1054.Summary of conflicts: ...

解决在微信内分享第三方链接标题、图片、摘要、链接等问题

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> <script> var imgUrl = docum...

多行文字溢出[...]的实现(text-overflow: ellipsis)

多行文字溢出[...]的实现(text-overflow: ellipsis)

对于单行文字, 很简单. Css代码  .oneLine {      width: 200px;      overflow:&...

css做屏幕适配

CSS判断不同分辨率浏览器(显示屏幕)显示不同宽度布局CSS3技术支持IE6到IE8。将用到css3 @media样式进行判断,但IE9以下版本不支持CSS3技术,这里DIVCSS5给大家介绍通过JS实现低版本的浏览器也支持CSS3实现实用布局CSS DIV网页布局中当分辨率小于等于1024px(像...

JQ 获取验证码倒计时方法

JQ 获取验证码倒计时方法

html: <a href="javascript:;" class="weui_btn weui_btn_mini weui_btn_default"  id="show-not...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。