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

vue使用插槽slot整理

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

插槽

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

作用域插槽

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

    • 父组件 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整理” 的相关文章

jQuery ajax使用$(this).parent()无效解决方法

本文章来给各位同学介绍一下关于jQuery ajax使用$(this).parent()无效解决方法,希望此方法对各位同学人有所帮助哦html 代码如下复制代码<p class="item"><input type="text" n...

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: ...

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

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

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

JQ 获取验证码倒计时方法

JQ 获取验证码倒计时方法

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

微信支付 总提示get_brand_wcpay_request:fail 也不跳转支付页面 的解决方案

微信支付 总提示get_brand_wcpay_request:fail 也不跳转支付页面 的解决方案

最近在做微信支付,帮客户部署好环境后,测试微信支付,发现点击支付后老是提示:get_brand_wcpay_request:fail,于是找到代码中调用微信支付的代码段:WeixinJSBridge.invoke('getBrandWCPayRequest', { &nb...

Jq 网页点击图片放大效果(单张)

Jq 网页点击图片放大效果(单张)

首先引入jq文件:  <script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>$(function(){     $...

发表评论

访客

看不清,换一张

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