vue基础扩展8–solt详解

vue基础扩展8–solt详解<scriptsrc=”https://cdn.jsdelivr.net/npm/vue/dist/vue.js”></script><title>vue基础扩展8solt详解</title></head><body><!-一、旧的插槽概述:插槽是什么?顾明思意就是,在组件内定义了一个占位符,可以用来拿到组件包裹的内容进行渲染。或者说我们在使用组件时,在组件内.

<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
  <title>vue基础扩展8--solt详解</title>
</head>
<body>
    <!---
      一、旧的插槽
      概述:插槽是什么? 顾明思意就是,在组件内定义了一个占位符,可以用来拿到组件包裹的内容进行渲染。
    或者说我们在使用组件时,在组件内填写的元素会在组件内部定义的solt标记渲染。
      1、旧的api
        方式1: 组件内<solt></solt>, 使用:组件标签包裹内容即solt内容。
        方式2:  组件内<solt name="xx"><solt>, 使用:包裹内容内: <element solt="xx"> <element>
        方式3: 组件内<solt :todo="todo">,使用:在方式2基础上通过<template slot-scope="scope"> scope.todo 传递绑定的属性
    -->

    <!--2、旧的api综合使用案例-->
    <div id="app">
      <slot2 :msg="msg">
        <div slot="head">我是头</div>
        <div slot-scope="scope">我是默认:{
  
  {scope.msg}}</div>
        <div slot="foot">我是尾</div>
      </slot2>
    </div>
      
    <script>
      var vm = new Vue({
        el:'#app',
        data() {
          return {
            msg:'hello world!'
          }
        },
        components:{
          slot2:{
            props: ['msg'],
            template:`<div>
              <slot name="head"></slot>
              <slot :msg="msg"></slot>
              <slot name="foot"></slot>
            </div>`
          }
        }
      });
    </script>

    <!--
      3、 新的api方式
      组件内模板定义solt的方式不变, solt变成v-solt
      方式2 :<element v-solt:xx> </element>  或者 <element #xx> </element>
      方式3 :<element v-solt="slotProps"> </element>  或者 <element #default="slotProps"> </element>
    -->

    <!--
      4、改写范例
    -->

    <div id="app1">
      <slot2 :msg="msg">
        <template #head><div>我是头</div></template>
        <template #default="scope"><div>我是默认:{
  
  {scope.msg}}</div></template>
        <template #foot><div>我是尾</div></template>
      </slot2>
    </div>
      
    <script>
      var vm = new Vue({
        el:'#app1',
        data() {
          return {
            msg:'hello world!'
          }
        },
        components:{
          slot2:{
            props: ['msg'],
            template:`<div>
              <slot name="head"></slot>
              <slot :msg="msg"></slot>
              <slot name="foot"></slot>
            </div>`
          }
        }
      });
    </script>

 

今天的文章vue基础扩展8–solt详解分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/24683.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注