<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[solocoder的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/solocoder</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; solocoder]]></copyright><item><title><![CDATA[前端复杂表格导出excel，一键导出 Antd Table 看这篇就够了（附源码）]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/123814467</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/123814467</guid><author>solocoder</author><pubDate>Tue, 29 Mar 2022 10:21:45 +0800</pubDate><description><![CDATA[前端导出 excel 的需求很多，但市面上好用的库并不多，讲明白复杂使用场景的文章更少。
本文将以文字 + demo 源码的形式，力求讲清楚满足 99% 使用场景的终极 excel 导出方案。
如果项目中用到了 AntD，那就更简单了，因为 Table 本身已经设置好了 column 和 dataSource，只需解析 column 和 dataSource 即可快速导出 Excel。
实现功能：

简单表格导出
为表格添加样式（更改背景色、更换字体、字号、颜色）
设置行高、列宽
解析 ant-design]]></description><category></category></item><item><title><![CDATA[前端提效 - js 批量导出 excel 为zip压缩包]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/123814285</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/123814285</guid><author>solocoder</author><pubDate>Tue, 29 Mar 2022 10:19:19 +0800</pubDate><description><![CDATA[本篇文章主要介绍使用 exceljs、file-saver、jszip实现下载包含多层级文件夹、多个 excel、每个 excel 支持多个 sheet 的 zip 压缩包。上一篇文章：前端复杂表格导出excel，一键导出 Antd Table 看这篇就够了（附源码）详细介绍了如何实现解析 Antd Table、组装数据和调整表格的样式，感兴趣的可以先看看。本篇将接着上一篇，重点讲方法的更高级抽象，和下载多层级文件夹的 zip 压缩包。源码地址：https://github.com/cachecats/ex]]></description><category></category></item><item><title><![CDATA[100 行代码实现 Flutter 自定义 TabBar]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/108812066</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/108812066</guid><author>solocoder</author><pubDate>Sat, 26 Sep 2020 15:02:45 +0800</pubDate><description><![CDATA[Flutter 的确很强大，但美中不足的是生态还有待完善，没有出现像前端的 Antd 或 Element 那样全能的基础 UI 库。
由此带来的直接影响是开发效率提不上去，需要耗费大量的时间精力在基础组件的封装上。
官方的 TabBar 不满足需求，又没有合适的轮子，只好自己造轮子啦。接下来带你一步步实现自定义 TabBar……
一、目标和效果
需求目标是：

这个页面不要 material 左侧统一的返回键和 Title
在右侧有取消按钮，点取消即返回
点击 Tab 可以实现 content 切换并带有动]]></description><category></category></item><item><title><![CDATA[微信小程序国际化探索（附源码地址）]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/106572077</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/106572077</guid><author>solocoder</author><pubDate>Fri, 05 Jun 2020 15:44:40 +0800</pubDate><description><![CDATA[随着小程序应用越来越广泛，国际化支持逐渐成了刚需。
官方文档给出了一个 国际化方案，但觉得配置起来稍微有点复杂，对项目结构还有一定的要求。如果是旧项目改动成本太大，遂决定自己实现一个小程序国际化方案。
源码地址：https://github.com/cachecats/miniprogram-i18n
一、项目结构
整体目录结构如下图：


assets 存放资源文件，如图片
constants 存放项目中用到的常量
i18n 存放语言文件，中文是 zh-CN.js 英文是 en-US.js ，如果还需要支]]></description><category></category></item><item><title><![CDATA[前端面试必备技巧（二）重难点梳理]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/106571857</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/106571857</guid><author>solocoder</author><pubDate>Fri, 05 Jun 2020 15:37:40 +0800</pubDate><description><![CDATA[针对面试中出镜率比较高的重难点知识梳理。
相比于第一篇 前端面试必备技巧，本篇文章更贴合今年的面试实际。第一篇比较全面，也比较基础，建议先看一遍上一篇再看本篇会更容易理解。
一、ES6常见用法

关于 ES6（泛指 ECMAScript 2015 及以后的版本）几乎是面试必问的，一般的问法是：“平常会使用 ES6 吗？列举几个 ES6 的用法”。
回答出来三四个就差不多了，但回答的每一个都要弄清楚，有的面试官会延伸着追问。
如果时间充足，还是建议看看 阮一峰的 ES6 入门教程 。

1.1 let 和 c]]></description><category></category></item><item><title><![CDATA[2020前端面试必备技巧]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/106571783</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/106571783</guid><author>solocoder</author><pubDate>Fri, 05 Jun 2020 15:35:06 +0800</pubDate><description><![CDATA[2020最全的前端面试指南，一个多月 1.8w 字的面试经验积累，凭借它最终成功入职大厂……
今年的金三银四刚好赶上疫情，很多大公司都停止招聘甚至裁员，想跳槽的小伙伴被打的措手不及。
需求减少要求肯定随之提高，谨以此面经献给在如此艰难之时逆风而动、勇敢坚强的你~
与面试贴合度更高的 前端面试必备技巧（二）重难点梳理 整理好啦，两篇文章结合起来看效果更佳~
前言
今年问的难度和深度应该比前几年有所增加，下面从总体分析和重要点两个维度来分析一下：
总体分析

前端问的最多的还是 js基础、计算机网络基础等，建议]]></description><category></category></item><item><title><![CDATA[Vue 图片压缩并上传至服务器]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/103985580</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/103985580</guid><author>solocoder</author><pubDate>Wed, 15 Jan 2020 11:12:23 +0800</pubDate><description><![CDATA[本文主要讲解基于 Vue + Vant ，实现移动端图片选择，并用 Canvas 压缩图片，最后上传至服务器。还会封装一个工具类，方便直接调用。
一、工具类封装
废话不多说先上代码，封装一个 CompressImageUtils&nbsp;工具类：
/**
 * 图片压缩工具类
 * 最大高度和最大宽度都为 500，如果超出大小将等比例缩放。
 *
 * 注意可能出现压缩后比原图更大的情况，在调用...]]></description><category></category></item><item><title><![CDATA[全栈式部署：SpringCloud 微服务+Docker + Vue + nginx 前后端一站式部署]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/102755326</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/102755326</guid><author>solocoder</author><pubDate>Sat, 26 Oct 2019 12:41:06 +0800</pubDate><description><![CDATA[本文将带大家从一台全新的 CentOS 服务器开始，部署一套完整的前后端分离项目。操作步骤非常详细，新手友好型文章~
后端技术栈：SpringCloud 微服务架构 + Redis + RabbitMQ + MySql；
前端技术栈：Vue + ElementUI；
部署工具：后端用 Docker 容器化部署，并把命令封装成脚本自动执行；前端用 Nginx 做代理。
一、前期准备
系统版本为：Ce...]]></description><category></category></item><item><title><![CDATA[PostgreSQL 修改默认用户 postgres 的密码 - 图形化界面操作]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/100593380</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/100593380</guid><author>solocoder</author><pubDate>Sat, 07 Sep 2019 11:15:05 +0800</pubDate><description><![CDATA[如何修改 PostgreSQL 的用户密码呢？网上的方法大都是使用命令行修改，但不知为何我执行总是失败。
找了好多文章试了 n 次还是不行，最后终于摸索出不用命令行，用图形化界面修改密码的简单方法。
一、找到并运行 pgAdmin
打开应用程序，找到 PostgreSQL，点击会看到 pgAdmin 4.app，双击运行。

运行成功之后会在顶栏看到一个大象图标

然后浏览器会自动打开一个页面，如...]]></description><category></category></item><item><title><![CDATA[SpringBoot 集成 Schedule 详解]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/99970582</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/99970582</guid><author>solocoder</author><pubDate>Wed, 21 Aug 2019 16:04:17 +0800</pubDate><description><![CDATA[一、如何使用 Schedule
1.1 启动类加注解
在启动类上添加注解 @EnableScheduling
@SpringBootApplication
@EnableScheduling
public class Application {
  public static void main(String[] args) {
    SpringApplication.run(Applicat...]]></description><category></category></item><item><title><![CDATA[SpringBoot 整合 liquibase]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/99696715</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/99696715</guid><author>solocoder</author><pubDate>Sat, 17 Aug 2019 18:58:18 +0800</pubDate><description><![CDATA[SpringBoot 整合 liquibase
LiquiBase是一个用于数据库重构和迁移的开源工具，通过日志文件的形式记录数据库的变更，然后执行日志文件中的修改，将数据库更新或回滚到一致的状态。它的目标是提供一种数据库类型无关的解决方案，通过执行schema类型的文件来达到迁移。其有点主要有以下：

支持几乎所有主流的数据库，如MySQL, PostgreSQL, Oracle, Sql Se...]]></description><category></category></item><item><title><![CDATA[重拾安卓：自定义View之表格封装实现]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/96148308</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/96148308</guid><author>solocoder</author><pubDate>Tue, 16 Jul 2019 16:24:25 +0800</pubDate><description><![CDATA[今天开始更新【重拾安卓】系列文章。
因业务需要又要做一个 Android 原生的项目，记录下时隔几年之后再开发安卓的那些事。讲的不会太基础，基本上是自定义View封装，复杂功能的实现等等，有需要的小伙伴可以关注~

安卓对表格的支持不是太友好，前端很快能实现的简单表格，安卓写的话要费很大精力。
拿到需求之后，稍微复杂点的功能在 github 上搜一下有没有好用的第三方框架，无疑是最节省时间的。表格...]]></description><category></category></item><item><title><![CDATA[基于 Vue 的移动端富文本编辑器 vue-quill-editor 实战]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/90600927</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/90600927</guid><author>solocoder</author><pubDate>Mon, 27 May 2019 11:55:16 +0800</pubDate><description><![CDATA[优秀的富文本编辑器有很多，比如：UEditor，wangEditor 等，但并不是每个都能在移动端有很好的表现。
我们暂且不讨论移动端是否真的需要富文本，既然有这需求，就把它实现出来。
失败的尝试
正确的选择是成功的开始，开发之前肯定要做一些调研。
通过各种资料搜集，确定了几个备选的：UEditor，vue-quill-editor，wangEditor，vue-html5-editor ，tin...]]></description><category></category></item><item><title><![CDATA[用 moment 实现获取本周、前 n 周、后 n 周开始结束日期]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/89400961</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/89400961</guid><author>solocoder</author><pubDate>Fri, 19 Apr 2019 15:20:02 +0800</pubDate><description><![CDATA[本文用 moment.js 实现了获取本周、前 n 周、后 n 周开始结束日期，即周一、周日日期的方法。
先看代码，封装了个工具类 DateTimeUtils.js，可以直接复制到项目中使用
/**
 * 时间日期工具类
 */
import moment from 'moment'

export default {
  /**
   * 获取本周周一和周日日期
   */
  getCurre...]]></description><category></category></item><item><title><![CDATA[Vue-cli3 项目在安卓低版本系统和 IE 上白屏问题解决]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/89288742</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/89288742</guid><author>solocoder</author><pubDate>Sat, 13 Apr 2019 21:03:45 +0800</pubDate><description><![CDATA[最近遇到一个问题，用 Vue 开发的项目在最近两年新出的安卓手机上没问题，在三四年前的旧手机上出现白屏问题。分析一下应该是安卓系统版本的原因，目前已知的是Android 6.0 以上都 OK，6.0 以下就不行了。
低版本安卓系统内置的 webview 不支持 ES6 语法等一些新特性，所以报错。但在手机上调试不方便，受一篇文章的启发， IE 浏览器也是同样的问题，所以可以在 IE 上调试，一个调...]]></description><category></category></item><item><title><![CDATA[Android原生同步登录状态到H5网页避免二次登录]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/88552889</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/88552889</guid><author>solocoder</author><pubDate>Thu, 14 Mar 2019 14:52:51 +0800</pubDate><description><![CDATA[本文解决的问题是目前流行的 Android/IOS 原生应用内嵌 WebView 网页时，原生与H5页面登录状态的同步。
大多数混合开发应用的登录都是在原生页面中，这就牵扯到一个问题，如何把登录状态传给H5页面呢？总不能打开网页时再从网页中登录一次系统吧… 两边登录状态的同步是必须的。

100 多位经验丰富的开发者参与，在 Github 上获得了近 1000 个 star 的全栈全平台开源项目想...]]></description><category></category></item><item><title><![CDATA[Vue 开发经验小记]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/88173903</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/88173903</guid><author>solocoder</author><pubDate>Tue, 05 Mar 2019 11:28:47 +0800</pubDate><description><![CDATA[使用 vue 开发过程中遇到的问题或知识点总结，持续更新中…
1.国际化
国际化插件：vue-i18n
2.让多行内容显示一行，多余的用…表示
white-space : nowrap
overflow: hidden
text-overflow : ellipsis

3.显示宽高相等的图片，宽度为屏幕宽度，高度与宽度相等
&amp;lt;div class=&quot;image-header&quot;&amp;gt;
  &amp;...]]></description><category></category></item><item><title><![CDATA[在小程序框架 wepy 中使用 iconfont 图标字体]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/88124371</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/88124371</guid><author>solocoder</author><pubDate>Mon, 04 Mar 2019 16:50:55 +0800</pubDate><description><![CDATA[新的小程序项目准备踩坑 Wepy 啦！
纠结过原生、Wepy、mpvue到底用哪个。

原生：之前的项目用的就是原生，开发起来有点太原始，想换换口味。把原生作为托底方案，假如另外两个遇到踩不过去的坑就转用原生做。
wepy：star数量有16k，看了看官方文档，感觉开发方式还不错。毕竟算是腾讯亲生儿子，感觉靠谱些。
mpvue：star数跟 wepy 不相上下，也是 16k，一套代码多端通用很有吸...]]></description><category></category></item><item><title><![CDATA[Vue 返回记住滚动条位置详解]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/88124264</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/88124264</guid><author>solocoder</author><pubDate>Mon, 04 Mar 2019 16:49:49 +0800</pubDate><description><![CDATA[最近用 Vue 做移动端页面遇到一个问题，从列表页进入详情页，再返回到列表页，不管之前滚动到哪里，每次返回时都跳到列表最顶部。
这样体验肯定不好，期望的应该是记住滚动条的位置，每次返回还是在原来的位置上，便于继续浏览。
于是在网上搜解决方法，搜了一大圈看了 n 篇文章，都没有说清楚。起码我是没有通过看一篇文章而完美解决，所以决定写一篇详细的亲测可行的解决方案。
一共分三步：

给 router-v...]]></description><category></category></item><item><title><![CDATA[Python数据处理（二）：处理 Excel 数据]]></title><link>https://blog.youkuaiyun.com/solocoder/article/details/87449192</link><guid>https://blog.youkuaiyun.com/solocoder/article/details/87449192</guid><author>solocoder</author><pubDate>Sat, 16 Feb 2019 14:40:32 +0800</pubDate><description><![CDATA[在本章和下一章里，我们将研究两种文件类型实例：Excel 文件和 PDF，并给出几条一般性说明，在遇到其他文件类型时可以参考。
处理 Excel 比上章讲的处理 CSV、JSON、XML 文件要难多了，下面以 UNICEF(联合国儿童基金会) 2014 年的报告为例，来讲解如何处理 Excel 数据。
相关文章：
十分钟快速入门 Python
Python数据处理(一)：处理 JSON、XML、C...]]></description><category></category></item></channel></rss>