当前位置: 首页 > article >正文

在vue3中根据需要展示特定国家的国旗

这里使用开源库 flag-icons 

源码地址:https://github.com/lipis/flag-icons

源码的介绍如下:

1、安装依赖

npm install flag-icons --save
# or
yarn add flag-icons 

2、在main.ts引入 CSS 文件

import 'flag-icons/css/flag-icons.min.css'; // 引入国旗css库

3、封装成一个通用组件

这里只做了简单封装,国旗大小我直接写死了,可根据需求修改

在项目中新建组件 命名 country.vue

country.vue 组件完整代码如下:

<template>
  <div :id="'flag' + timeId" style="width: 20px; height: 16px;"></div>
</template>
<script lang='ts' setup>
import { nextTick, onMounted, ref, watch } from 'vue';

const props = defineProps({
  code: {
    type: String,
    default: '',
  }
})
const timeId = ref(Math.floor(new Date().getTime() * Math.random())); // 使该图表保持唯一id
const countryCode = ref(props.code); // 国家编码

// 根据国家编码生成国旗图标
function generateFlagIcon(code: string) {
  const flagContainer = document.getElementById(`flag${timeId.value}`);
  if (!flagContainer) return
  flagContainer.classList.add('fi');
  flagContainer.classList.add(`fi-${code.toLowerCase()}`);
}
watch(() => props.code, (val) => {
  // console.log('国家编号', val);

  countryCode.value = val
  nextTick(() => {
    // 调用函数生成国旗图标
    generateFlagIcon(countryCode.value);
  })
})

onMounted(() => {
  nextTick(() => {
    // 调用函数生成国旗图标
    generateFlagIcon(countryCode.value);
  })
})
</script>
<style scoped lang='scss'></style>

4、使用组件


http://www.kler.cn/a/470792.html

相关文章:

  • 【Cesium】自定义材质,添加带有方向的滚动路线
  • 寒假刷题Day1
  • 大数据高级ACP学习笔记(2)
  • 炸弹 (boom.c)
  • C/C++编程安全标准GJB-8114解读——初始化类
  • web系统漏洞攻击靶场
  • Postman + Jenkins + Report 集成测试
  • 在 ASP.NET CORE 中上传、下载文件
  • train_args = TrainingArguments()里面的全部参数使用
  • 中电金信携手华为发布“全链路实时营销解决方案”,重塑金融营销数智新生态
  • 设计模式-结构型-适配器模式
  • flutter 专题二十四 Flutter性能优化在携程酒店的实践
  • 计算机毕业设计Python+Vue.js游戏推荐系统 Steam游戏推荐系统 Django Flask 游 戏可视化 游戏数据分析 游戏大数据 爬虫
  • AI巡检系统在安全生产管理中的创新应用
  • 游戏引擎学习第74天
  • Redis 数据库源码分析
  • Opencv实现Sobel算子、Scharr算子、Laplacian算子、Canny检测图像边缘
  • stm32 移植RTL8201F(正点原子例程为例)
  • Easyexcel-4.0.3读取文件内容时遇到“java.lang.ClassNotFoundException”
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(二)-递归实现组合型枚举、带分数问题
  • libaom 源码分析线程结构
  • uni-app 页面生命周期及组件生命周期汇总(Vue2、Vue3)
  • 特征点检测与匹配——MATLAB R2022b
  • 2025资源从哪里来!
  • vue3-dom-diff算法
  • Postman接口测试02|接口用例设计