<LookForward />显示一个带有图标的界面

使用 Vue 3 和 TypeScript 创建的单文件组件(SFC),使用了 TypeScript 和 Composition API 的 setup 语法糖。模板部分渲染了一个名为 LookForward 的子组件,样式部分目前为空但被标记为作用域限定。

以下是代码的详细解读:

1. <script setup lang="ts">

  • **<script>**:定义组件的逻辑部分。

  • **setup**:这是 Vue 3 Composition API 的语法糖,表示组件将使用 setup 函数来处理逻辑。

  • **lang="ts"**:指定脚本部分使用 TypeScript 编写。

2. <template>

  • **<template>**:定义组件的模板部分,即 HTML 结构。

  • **<LookForward />**:这是一个自定义组件,通过其标签名 <LookForward> 渲染到页面上。这个组件可能在项目的其他文件中定义并导出。

3. <style scoped>

  • **<style>**:定义组件的样式部分。

  • **scoped**:表示这些样式仅作用于当前组件,不会污染全局或其他组件的样式。

<LookForward />显示一个带有图标的界面,文字内容可以通过国际化插件动态切换语言。它使用了 Flexbox 布局来实现居中和间距控制,同时通过插槽提供了灵活性,允许父组件自定义内容。

脚本部分(<script setup lang="ts">

import { $t } from '@/locales';

defineOptions({
  name: 'LookForward'
});
  • **<script setup lang="ts">**:使用了 Vue 3 的组合式 API(Composition API)的语法糖,setup 表示这是一个组合式 API 的组件,lang="ts" 表示使用 TypeScript 编写。

  • **import { $t } from '@/locales';**:从项目的国际化(i18n)配置文件中导入 $t 函数,用于获取不同语言的文本。

  • **defineOptions**:定义组件的选项,这里设置了组件的名称为 'LookForward',这在调试和路由中可能会用到。

模板部分(<template>

<template>
  <div class="size-full min-h-520px flex-col-center gap-24px overflow-hidden">
    <div class="flex text-400px text-primary">
      <SvgIcon local-icon="expectation" />
    </div>
    <slot>
      <h3 class="text-28px text-primary font-500">{{ $t('common.lookForward') }}</h3>
    </slot>
  </div>
</template>
  • 外层 div
    • class="size-full min-h-520px flex-col-center gap-24px overflow-hidden"
      • size-full:可能是一个自定义样式类,用于设置元素的宽度和高度为 100%。

      • min-h-520px:设置最小高度为 520 像素。

      • flex-col-center:使用 Flexbox 布局,子元素垂直居中排列。

      • gap-24px:子元素之间的间距为 24 像素。

      • overflow-hidden:超出部分隐藏。

  • 图标部分
    • <div class="flex text-400px text-primary">
      • flex:使用 Flexbox 布局。

      • text-400px:字体大小为 400 像素。

      • text-primary:使用主色调。

    • <SvgIcon local-icon="expectation" />:渲染一个 SVG 图标组件,local-icon="expectation" 指定了图标的名称。

  • 内容部分
    • <slot>:定义一个插槽,允许父组件传入自定义内容。

    • 默认内容是一个 h3 标签:
      • class="text-28px text-primary font-500":字体大小为 28 像素,主色调,字体粗细为 500。

      • {{ $t('common.lookForward') }}:使用国际化插件获取对应的文本。

样式部分(<style scoped>

<style scoped></style>
  • 这里没有具体的样式规则,scoped 表示这些样式只作用于当前组件,避免样式污染其他组件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值