• vue3的新写法和特性整理——六、插槽的使用


    1、子组件暴露插槽的写法

    <template>
      <div class="hello">
        <h1>子组件</h1>
        <h1>↓↓↓以下是默认插槽内容↓↓↓</h1>
        <slot :scope="sexEn1"></slot>
        <h1>↑↑↑以上是插槽内容↑↑↑</h1>
        <br />
    
        <div>{{sexEn}}</div>
        <h1>↓↓↓以下是具名插槽 sex的内容↓↓↓</h1>
        <slot name="sex" :scope="sexEn2"></slot>
        <h1>↑↑↑以上是具名插槽 sex的内容↑↑↑</h1>
      </div>
    </template>
    
    <script>
    import { reactive, toRefs } from 'vue';
    export default {
      setup(a,b) {
        console.log(b);
        const state = reactive({
          sexEn1: 'femeal',
          sexEn2: 'meal',
          age: 23
        });
        return {
          ...toRefs(state)
        };
      },
      name: 'AgeAndSex'
    };
    </script>
    
    <style scoped>
    .hello {
      margin: 20px;
      color: green;
      border: 1px solid green;
    }
    .pointer {
      cursor: pointer;
    }
    </style>
    

      
    2、父组件使用插槽的写法

    <template>
      <div class="about">
        <AgeAndSex>
          <template v-slot="obj">
            <div class="slot">父组件使用插槽反显sexEn1:{{obj.scope}}为{{filter(obj.scope)}}</div>
          </template>
          <template v-slot:sex="obj">
            <div class="slot">父组件使用插槽反显sexEn2:{{obj.scope}}为{{filter(obj.scope)}}</div>
          </template>
        </AgeAndSex>
      </div>
    </template>
    <script>
    // eslint-disable-next-line no-unused-vars
    import { reactive, toRefs } from 'vue';
    import AgeAndSex from '@/components/AgeAndSex';
    export default {
      setup() {
        let filter = e => {
          console.log(e);
          switch (e) {
            case 'meal':
              return '男';
            case 'femeal':
              return '女';
            default:
              return '保密';
          }
        };
        return {
          filter
        };
      },
      filters: {},
      components: { AgeAndSex }
    };
    </script>
    <style scoped>
    .slot {
      color: red;
    }
    </style>
    

      效果图

    3、顺带一提:在vue3中,已经废除了管道符(过滤器)的功能,官方提出使用计算属性的解决方案。如果复用性不高,也可以在setup中写方法,或者写在工具函数里(我个人想法是挂载到window上,然后在setup中的返回值中解构)

    随笔为本人学习笔记以及个人看法,若有错误,欢迎指正
  • 相关阅读:
    [转]VC++下使用ADO操作数据库
    VC++ GetSafeHwnd()和GetSafeHandle()
    VC++ GetSafeHwnd用法
    C++中的const成员函数(函数声明后加const,或称常量成员函数)用法详解
    VC++ Debug条件断点使用
    VC++为你的程序增加内存泄露检测
    VC++ Debug格式化数值显示
    VC++Debug查看堆对象内容,即使符号已经超出作用范围
    VC++ Debug产生异常时中断程序执行Break on Exception
    一个简单的伪随机数发生算法
  • 原文地址:https://www.cnblogs.com/yjc-vue-react-java/p/13876723.html
Copyright © 2020-2023  润新知