在小程序框架 wepy 中使用 iconfont 图标字体

本文介绍了如何在Wepy小程序框架中使用Iconfont图标字体,包括为何选择图标字体,从阿里Iconfont下载图标,将字体文件引入Wepy项目,以及在实际项目中演示使用图标的方法。此外,还提及了全栈全平台开源项目CodeRiver,它涵盖了多种主流技术栈,助力开发者提升技能。

新的小程序项目准备踩坑 Wepy 啦!

纠结过原生、Wepy、mpvue到底用哪个。

  • 原生:之前的项目用的就是原生,开发起来有点太原始,想换换口味。把原生作为托底方案,假如另外两个遇到踩不过去的坑就转用原生做。
  • wepy:star数量有16k,看了看官方文档,感觉开发方式还不错。毕竟算是腾讯亲生儿子,感觉靠谱些。
  • mpvue:star数跟 wepy 不相上下,也是 16k,一套代码多端通用很有吸引力。

mpvue 跟 wepy 真的很难抉择,我目前没有兼容多平台的需求,所以直觉告诉我还是用 wepy 吧~

100 多位经验丰富的开发者参与,在 Github 上获得了近 1000star 的全栈全平台开源项目想了解或参与吗?
项目地址:https://github.com/cachecats/coderiver

为什么用图标字体

一是轻量级、灵活性,二是小程序的特殊性。

目前小程序整体虽然可以达到 8M,但每个分包不能超过2M,图标都用图片的话体积太大。

查找并下载图标

我们采用阿里的 iconfont

打开 iconfont ,搜索想要的图标,然后鼠标放到图标上点购物车小按钮加入购物车,如下图:

选完后找到购物车,点添加进项目。没有项目的话可以新建一个。

把图标放进项目的目的是,以后再想添加其他图标,直接加入项目即可,方便一键下载。

打开项目,可以看到刚选择的图标都在里面。点 下载至本地,将这些图标字体打包下载到本地。

下载完是一个 .zip 压缩包,解压得到一系列文件。

除了前两个,其他的几个文件都是以 iconfont 作为文件名,只是后缀不同。猜想这应该是为了兼容不同的浏览器而形成的不同格式,打开 iconfont.css 瞅一眼,可以看到前面几行是引入了下面几个文件,还有注释,分别是兼容 IE9IE6-8 等各种版本的浏览器。

知道原理后,可以根据自己项目的情况选择引入哪些文件。最保险的是把以 iconfont 为文件名的几个文件都拷过去,肯定没问题。但小程序的内核版本应该比较高,在微信内部打开不用考虑兼容性问题,所以我们只用引 iconfont.css 这一个文件即可。

将 iconfont 引入wepy项目

打开 wepy 项目,将 iconfont.css 拷到项目中。我习惯放到 src/assets/iconfont 下面。

拷进来之后还要做一些更改。

由于我在项目中用了 SCSS,为了引入方便将文件名改为 iconfont.scss。虽然 SCSS 也能直接引入 CSS 文件,但我试了如果用 .css 作为后缀则引不成功,所以还是改成 .scss 吧。

然后改 iconfont.scss 里的代码,把代码中引入其他文件的代码都删掉,只保留有 base64 的那行:

url('data:application/x-font-woff2;charset=utf-8;base64...

然后还需要在 url 的前面加上 src:。改完后最终的代码:

@font-face {font-family: "iconfont";
  src: url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAA...==') format('woff2');
}

.iconfont {
  font-family: "iconfont" !important;
  font-size: 16px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-like:before {
  content: "\e614";
}

.icon-add:before {
  content: "\e612";
}

上面 base64 中间删掉了很多用 … 代替了。

改完 iconfont.scss ,再在 app.wpy 中引入即可。

<style lang="scss">
  @import "./assets/iconfont/iconfont";

  .container {
    height: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    box-sizing: border-box;
  }
</style>

现在就可以愉快的在 wepy 项目中使用图标字体啦!

演示

新建一个页面,放一个 text 和 一个图标,编译后用微信开发工具打开看效果

<template lang="wxml">
  <div>
    <text>哈哈</text>
    <i class='iconfont icon-add'></i>
  </div>
</template>

图标显示成功。

以上就是在 wepy 中使用 iconfont 图标字体的全部内容。


全栈全平台开源项目 CodeRiver

CodeRiver 是一个免费的项目协作平台,愿景是打通 IT 产业上下游,无论你是产品经理、设计师、程序员或是测试,还是其他行业人员,只要有好的创意、想法,都可以来 CodeRiver 免费发布项目,召集志同道合的队友一起将梦想变为现实!

CodeRiver 本身还是一个大型开源项目,致力于打造全栈全平台企业级精品开源项目。涵盖了 React、Vue、Angular、小程序、ReactNative、Android、Flutter、Java、Node 等几乎所有主流技术栈,主打代码质量。

目前已经有近 100 名优秀开发者参与,github 上的 star 数量将近 1000 个。每个技术栈都有多位经验丰富的大佬坐镇,更有两位架构师指导项目架构。无论你想学什么语言处于什么技术水平,相信都能在这里学有所获。

通过 高质量源码 + 博客 + 视频,帮助每一位开发者快速成长。

项目地址:https://github.com/cachecats/coderiver


您的鼓励是我们前行最大的动力,欢迎点赞,欢迎送小星星✨ ~

源码下载地址: https://pan.quark.cn/s/a4b39357ea24 在信息技术领域中,UML(统一建模语言)被视为一种通用的建模手段,其主要功能在于对软件开发过程中的各种概念进行可视化呈现,从而使得复杂系统结构的理解、设计及沟通变得更加便捷。以"个人通讯录系统uml图"为例,本案例将详细阐述如何运用UML图,尤其是ER图(实体关系图),来构建一个个人通讯录系统的数据模型。 首先,让我们对UML图的基本分类有所认识。UML图涵盖了多种类型,包括但不限于用例图、类图、序列图、协作图、状态图、活动图、组件图以及部署图。就本项目的实际情况而言,用例图(用于描述用户与系统的互动过程)、类图(界定对象与类之间的关联性)以及ER图(揭示数据库中实体及其相互联系)将是最为关键的应用。 用例图通过展现系统的主要参与者(users)及其能够执行的操作(use cases),并明确这些操作之间的相互联系,来描绘系统的核心功能。在个人通讯录系统的应用场景中,参与者可能涵盖普通用户,而用例则可能涉及添加联系人、搜索联系人、修改联系人信息以及删除联系人等操作。 类图则着重于展示类的组织结构,其中包括类名、属性和方法。在个人通讯录系统的构建过程中,可以设立一个"Contact"类来代表单个联系人,该类将包含诸如姓名、电话、邮箱等属性。同时,还可以设计一个"AddressBook"类来负责管理多个联系人,此类将集成添加、删除和查找联系人的功能。 ER图作为数据库设计的核心工具,主要用于表达实体、属性以及实体间的关联关系。在个人通讯录系统的设计中,实体可能包含"User"(用户)和"Contact"(联系人)。"User"实体可能具备用户名、密码等属性,而"Contact"实...
已经博主授权,源码转载自 https://pan.quark.cn/s/a4b39357ea24 标题中所提及的“PB9转换utf-8例子”具体描述了在PowerBuilder 9(PB9)环境中,将数据从非UTF-8编码格式转变为UTF-8编码格式的一种具体方案。鉴于PB9本身并不具备直接进行此类编码转换的功能,开发人员通常需要借助外部库或者特定的编程策略来达成这一功能。在此例中,采用了ADODB.Stream对象,该对象是Microsoft ActiveX Data Objects (ADO)框架内的一部分,它能够支持多种类型流数据的处理,其中包括文本数据的编码变更。 描述部分指出,由于PowerBuilder 9及其以下版本未内建直接的字符编码转换机制,因此需要借助ADODB.Stream。这个对象提供了一种途径,通过读取原始编码的文本,并将其写入到新的以UTF-8编码的流中,从而实现转换。这一过程一般包括启动一个流对象,设定其编码类型,读取原始数据,然后以目标编码(此处为UTF-8)写入到新流,最终保存结果。 标签“pb9 utf-8”清晰地表明了讨论的主题是关于PowerBuilder 9与UTF-8编码相关的问题。UTF-8是一种应用广泛的Unicode字符编码,能够表示Unicode字符集中几乎所有字符,涵盖了全球多种语言文字。 在压缩包内的文件清单中,包含了四个与PowerBuilder相关的文件(utf-8.pbl、utf-8.pbt、utf-8.pbw)以及三个文本文件(aaa.txt、www.txt、bbb.txt)。这四个PB文件或许包含了示例代码、项目配置和工作区信息,用于展示如何运用ADODB.Stream进行编码转换。而aaa.txt、www...
内容概要:本文提出了一种基于粒子群算法(PSO)融合动态窗口法(DWA)的无人机三维动态避障路径规划方法,旨在解决无人机在复杂、动态环境中安全高效飞行的路径规划难题。该方法通过Matlab代码实现,有效结合了PSO算法的全局寻优能力与DWA算法的局部实时避障优势,能够在存在移动障碍物的三维空间中规划出平滑、安全且优化的飞行路径。研究内容涵盖算法原理设计、融合机制构建、仿真环境搭建、路径规划性能测试与分析,充分验证了该融合策略在应对动态障碍物、提升避障实时性与路径质量方面的优越性。; 适合人群:具备一定编程基础和无人系统相关知识的科研人员,特别适用于从事无人机自主导航、智能优化算法、机器人路径规划等领域研究的研究生、高校教师及工程技术人员。; 使用场景及目标:①应用于城市、森林、灾害救援等复杂动态环境下的无人机自主飞行与实时避障;②为智能交通、物流配送、电力巡检、安防监控等领域的移动机器人路径规划提供先进的算法参考和技术解决方案;③作为智能优化算法与机器人技术融合教学与科研实验的重要案例。; 阅读建议:建议读者结合提供的Matlab代码进行仿真实验,深入理解PSO与DWA的融合逻辑、关键参数的敏感性分析及避障效果的评价指标,鼓励在掌握核心思想的基础上进行算法改进与创新应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值