<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LiuBai_X的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LiuBai_X</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LiuBai_X]]></copyright><item><title><![CDATA[[前端业务逻辑] 文本超长截断时显示省略号，并提供Tooltip 以便用户可以看到完整内容]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/109281116</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/109281116</guid><author>LiuBai_X</author><pubDate>Mon, 26 Oct 2020 00:33:26 +0800</pubDate><description><![CDATA[前言

文本超长截断时显示省略号，并提供鼠标悬停才会显示的Tooltip 来展示完整内容，这种实现可以大大节省页面空间，进而怎加布局的灵活性，在实际项目开发中应该还是有很多应用场景的。

此次实验源于之前对Fluent UI 的TooltipHost 组件的好奇，该组件实现了文本溢出时才会出现Tooltip 的逻辑，测试了几次后，确认了之前的猜想，整体来说——简单而巧妙，如果有其他实现方式，或者描述有误，欢迎评论区讨论。

实现方式

首先父元素设置CSS实现当子元素文本超长时截断并替换被截断字符串为省略号]]></description><category></category></item><item><title><![CDATA[[NodeJS] 理解exports和module.exports 的关系，为什么不能直接替换exports？]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/108365109</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/108365109</guid><author>LiuBai_X</author><pubDate>Wed, 02 Sep 2020 17:06:53 +0800</pubDate><description><![CDATA[根据定义，一个模块最终导出的是module.exports，而exports是对module.exports的全局引用，最初被定义为一个可以添加属性的空对象。

所以导出自己定义的模块，两者在使用上有如下区别：

1. module.exports = myModule


// myModule.js
var MyModule = {};

MyModule.prototype.myFunc = function() {
    console.log("Hello World");
};

module]]></description><category></category></item><item><title><![CDATA[[Accessibility] Web Accessibility入门]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/103976794</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/103976794</guid><author>LiuBai_X</author><pubDate>Sat, 07 Mar 2020 13:53:39 +0800</pubDate><description><![CDATA[Web Accessibility

国内公司几乎不会考虑Web Accessibility，这与我们的法律有关，国内的法律并不强制要求Web Accessibility，而像美国，甚至专门出台了一个508康复法案，制订了若干Accessibility标准，一旦某公司的产品不达标，就要面临法律风险。所以很多外企，尤其是在我们国内设立研发中心的，基本上都要了解一点Web Accessibility，...]]></description><category></category></item><item><title><![CDATA[[翻译] What is the Pure Function？]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/103988467</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/103988467</guid><author>LiuBai_X</author><pubDate>Wed, 15 Jan 2020 14:27:47 +0800</pubDate><description><![CDATA[Pure Function（纯函数）

pure function的标准：

1. 对于相同的argument，总是会有相同的return value,且函数中以下部分不会变化：

local static variables（局部静态变量）
	non-local variables（非局部变量）
	mutable reference arguments （引用可变的参数）
	input stre...]]></description><category></category></item><item><title><![CDATA[循环发送请求之Javascript递归实现]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/103479600</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/103479600</guid><author>LiuBai_X</author><pubDate>Wed, 11 Dec 2019 18:02:03 +0800</pubDate><description><![CDATA[项目过程中的问题总结之循环发送请求
循环发送请求，除非必要，否则最好还是不要这么干，尤其是前后端分离项目，应当尽量避免发送多条请求，其实大部分场景下都可以找到可替代的方案。
但不排除一定要这么干的时候，这个需求，可以使用Promise，利用递归思想实现链式发送、处理请求。
我的需求

一个可以多选删除的列表，如果被删除项被一些Service调用，要提示无法删除。

正常思路应该是：把待删除项的id...]]></description><category></category></item><item><title><![CDATA[React脚手架集成Typescript]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/102831697</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/102831697</guid><author>LiuBai_X</author><pubDate>Thu, 31 Oct 2019 10:28:52 +0800</pubDate><description><![CDATA[最近一直想搭建个集成React，TypeScript的开发环境，但是无从下手，一番摸索后总算折腾出来了，记录下步骤。

React有create-react-app，这种脚手架的方式好处很明显，支持ES6新增语法、api，每次保存自动更新改变的内容（不用再每次手动关闭重启Node服务器），所以弄出脚手架：


$ npx create-react-app react_typescript
$ cd...]]></description><category></category></item><item><title><![CDATA[SessionStorage如何存放对象]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/100544991</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/100544991</guid><author>LiuBai_X</author><pubDate>Wed, 04 Sep 2019 18:55:03 +0800</pubDate><description><![CDATA[前后端分离模式下，很多时候需要用到window.sessionStorage对象

例如用到vuex的项目，刷新页面后state中的数据全部初始化，那么就要再次发送请求

或者用户所在界面有vue-router跳转后的参数，那么刷新页面后参数就不见了，请求无参数，恰好服务器端未考虑该情况，那么就会导致一系列问题。

sessionStorage并不支持存储对象，一个个的键名来取又太麻烦，有更简单巧...]]></description><category></category></item><item><title><![CDATA[VueCli 3.x踩坑记录，VueCli搭建脚手架下如何使用jQuery]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/100544295</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/100544295</guid><author>LiuBai_X</author><pubDate>Wed, 04 Sep 2019 18:36:01 +0800</pubDate><description><![CDATA[前几天写的项目用的BootStrap4.0的框架，有一个功能，想要在登录后验证是否发布过违规内容，如果存在就弹出个Modal框。于是问题就来了——


弹出BootStrap的Modal框的函数$("#id").modal(),Vue脚手架中如何导入并使用jQuery？


我看了大部分点击量较多的博客，全都是vuecli2.x的做法，2.x可以在build文件夹下的webpack.base.co...]]></description><category></category></item><item><title><![CDATA[服务器端处理跨域请求的最简解决方案]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/90947460</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/90947460</guid><author>LiuBai_X</author><pubDate>Wed, 05 Jun 2019 22:36:44 +0800</pubDate><description><![CDATA[最近在写一个vue-cli搭建的博客，本地测试的时候vue-cli是跑在node.js上的，而数据要从apache得到，由于node.js监听8080，apache监听80，端口不一致，导致出现跨域请求，浏览器报错:

XMLHttpRequest cannot loadhttp://XXXXXXXXX.No 'Access-Control-Allow-Origin' header is pr...]]></description><category></category></item><item><title><![CDATA[阿里云主机远程连接MySQL失败报错2003，部署Web应用后访问超时未响应]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/90761523</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/90761523</guid><author>LiuBai_X</author><pubDate>Tue, 04 Jun 2019 00:32:15 +0800</pubDate><description><![CDATA[去年买过阿里云的轻量级应用服务器，装的也是Windows系统，但是隔得时间一长就忘了部署服务器的细节了，还是不能相信自己的脑子，记下来省的下次难受。

创建完实例后先关防火墙，或者打开防火墙但是开放——80端口（用于Http服务的端口），3306端口（数据库远程连接端口）

然后必须记得！！！

配置控制台的安全组，开放80，3306等常用接口，否则阿里云会默认拦截所有访问未开放接口的请求！！！
...]]></description><category></category></item><item><title><![CDATA[WAMP安装到阿里云服务器报错 : 缺少MSVCR110.dll]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/90756383</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/90756383</guid><author>LiuBai_X</author><pubDate>Mon, 03 Jun 2019 17:58:58 +0800</pubDate><description><![CDATA[今天在阿里云主机上装wamp环境时出现问题：

点击桌面快捷方式启动，报错缺少msvcr110.dll
	图标绿色，各项服务正常使用
	点击无法弹出菜单
百度发现是缺少Visual C++ Redistributable for Visual Studio 2012 Update 4

下载安装后发现还是不解决问题，点击依然无法弹出菜单。

然后发现系统是Windows Server 2019 ...]]></description><category></category></item><item><title><![CDATA[原生JS+HTML表格Table实现2048小游戏]]></title><link>https://blog.youkuaiyun.com/LiuBai_X/article/details/89643009</link><guid>https://blog.youkuaiyun.com/LiuBai_X/article/details/89643009</guid><author>LiuBai_X</author><pubDate>Sun, 28 Apr 2019 18:40:51 +0800</pubDate><description><![CDATA[最近闷头学习JS，有些收获，闲着实现了个2048小游戏，废话不多说，直接看效果、代码。






效果图







1.思路


2048首先是一个4*4的16格棋盘，那么用表格还挺方便的，表格直接text-align就可以把文字左右、上下居中。
	其次，每个格子块有自己的数字，那么就可以有一个格子块类Div，它有属性number，有方法is2048（）判断是否通关，一个格子实例的数组就...]]></description><category></category></item></channel></rss>