【Vue3】首页主体-封装查看更多组件

简介: 【Vue3】首页主体-封装查看更多组件

(1)创建组件src/components/more/index.vue

<script lang="ts" setup name="More">
import { defineProps } from 'vue'
defineProps({
  path: {
    type: String,
    default: '/',
  },
})
</script>
<template>
  <RouterLink :to="path" class="more">
    <span><slot>查看全部</slot></span>
    <i class="iconfont icon-angle-right"></i>
  </RouterLink>
</template>
<style scoped lang="less">
.more {
  margin-bottom: 2px;
  span {
    font-size: 16px;
    vertical-align: middle;
    margin-right: 4px;
    color: #999;
  }
  i {
    font-size: 14px;
    vertical-align: middle;
    position: relative;
    top: 2px;
    color: #ccc;
  }
  &:hover {
    span,
    i {
      color: @dsColor;
    }
  }
}
</style>

(2)全局注册src/components/index.ts

import type { App } from 'vue'
import Skelecton from './skeleton/index.vue'
import Carousel from './carousel/index.vue'
import More from './more/index.vue'
export default {
  install(app: App) {
    app.component('Skelecton', Skelecton)
    app.component('Carousel', Carousel)
    app.component('More', More)
  },
}

(3)定义全局组件类型global.d.ts

import Skeleton from '@/components/skeleton/index.vue'
import Carousel from '@/components/carousel/index.vue'
import More from '@/components/more/index.vue'
declare module 'vue' {
  export interface GlobalComponents {
    Skeleton: typeof Skeleton
    Carousel: typeof Carousel
    More: typeof More
  }
}
export {}

(4)查看效果

<More>查看更多</More>

小技巧

  1. 子组件如果只有一个根标签,父组件传递过去的数据会能够穿透
  2. 如果子组件通过defineProps定义的数据不会出现在标签的身上
目录
相关文章
|
1天前
|
前端开发 JavaScript API
vue3服务端渲染警告解决----DefinePlugin
vue3服务端渲染警告解决----DefinePlugin
6 0
|
1天前
|
JavaScript 前端开发 算法
Vue3与Vue2:对比分析与迁移指南
Vue3与Vue2:对比分析与迁移指南
|
1天前
|
JavaScript 前端开发 UED
Vue class和style绑定:动态美化你的组件
Vue class和style绑定:动态美化你的组件
|
1天前
vue3封装面包屑
vue3封装面包屑
6 0
|
1天前
|
JavaScript
vue封装svg
vue封装svg
5 0
|
1天前
|
JavaScript
vue封装面包屑组件
vue封装面包屑组件
5 0
|
1天前
|
JavaScript 数据库
ant design vue日期组件怎么清空 取消默认当天日期
ant design vue日期组件怎么清空 取消默认当天日期
|
23小时前
|
JavaScript 前端开发
vue(1),小白看完都会了
vue(1),小白看完都会了
|
1天前
|
JavaScript
Vue中避免滥用this去读取data中数据
Vue中避免滥用this去读取data中数据
|
1天前
|
JavaScript
vue中使用pinia及持久化
vue中使用pinia及持久化
4 0