<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wengqt的博客]]></title><description><![CDATA[智库项目前端开发]]></description><link>https://blog.youkuaiyun.com/wengqt</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wengqt]]></copyright><item><title><![CDATA[数据可视化展示—用户词云]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80640392</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80640392</guid><author>wengqt</author><pubDate>Sun, 10 Jun 2018 13:10:32 +0800</pubDate><description><![CDATA[词云

用户词云是用来来展示大量文本数据，由词汇组成类似云的彩色图形，铜虫用于展示数据中的标签等，它可以根据标签的权重来控制展示文字的大小，它有以下的优点：


快速感知最突出的文字
快速定位按字母顺序排列的文字中相对突出的部分


本质上，词云是特殊的点图，就是在画布上绘制点，每一个点代表一个词，点的大小是权重，根据颜色区分类别，最后将点替换为文字，配置上旋转和图形即可。

这里我们使用的是蚂蚁...]]></description><category></category></item><item><title><![CDATA[基于token的身份验证]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80633962</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80633962</guid><author>wengqt</author><pubDate>Sat, 09 Jun 2018 16:34:34 +0800</pubDate><description><![CDATA[关于token



what is token？

token相当于是一个令牌，在用户登录的时候由服务器端生成（基于用户名、时间戳、过期时间、发行者等信息进行签名），然后发放给客户端，客户端将令牌保存，在以后需要登录验证的请求中都需要将令牌发送到服务器端进行验证，如果验证成功，则返回数据。目前很多大型网站都在使用基于token的验证方式：github，Facebook，Twitter…

why...]]></description><category></category></item><item><title><![CDATA[对es6语法进行转码]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80558784</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80558784</guid><author>wengqt</author><pubDate>Sun, 03 Jun 2018 19:27:04 +0800</pubDate><description><![CDATA[智库项目由于并没有使用webpack进行组件化开发，也没有使用npm进行依赖管理，这些都是历史原因。但是是用了es6的一些新语法，像模板字符串、class、let、const、promise等新语法，因为我们需要考虑兼容性问题，所以需要将所有的js文件进行编译转码，这里我们就用到了babel。首先，我们需要先全局安装babel：$ npm install babel-cli -g（在早期版本是in...]]></description><category></category></item><item><title><![CDATA[文件上传的进度条]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80543251</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80543251</guid><author>wengqt</author><pubDate>Fri, 01 Jun 2018 22:30:51 +0800</pubDate><description><![CDATA[从用户的角度来说，非常希望能够看到传输的进度，所以在我们认为非常有必要加上文件上传的进度条。关于文件上传进度的api，在原生js中有可以使用XMLHttpRequest的progress事件：xhr.upload.onprogress = function (event) {
  if (event.lengthComputable) {
    var percent = Math.floor(...]]></description><category></category></item><item><title><![CDATA[学院以及专业选择框的级联选择]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80481734</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80481734</guid><author>wengqt</author><pubDate>Mon, 28 May 2018 15:01:18 +0800</pubDate><description><![CDATA[在学院信息和专业信息的获取这有两种可行方案，一种是分开获取，先获取学院，再根据学院获取专业；另一种是直接获取到整个学院跟专业的映射，然后根据这个来在前端进行展示，无需二次请求。这两种方法各有利弊，但是在这里，第一种方法是不可行的，因为我们是要在一个列表里面选择专业，如果在分开获取的话，会出现很多网络请求来获取专业信息；还有就是，如果一下子修改两行数据的话，两行的学院不一样，那么专业获取的内容将会出...]]></description><category></category></item><item><title><![CDATA[table表单的修改和保存]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80474455</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80474455</guid><author>wengqt</author><pubDate>Mon, 28 May 2018 12:38:26 +0800</pubDate><description><![CDATA[最近在修改展示文件信息和用户信息的表单，需求是能够点击按钮来修改，同时不影响数据的展示。最开始，我直接将可以修改的部分直接存放到输入框中，简单粗暴，可是非常影响美观，并且有严重的修改逻辑，因为采用的是react框架，并不能用id直接绑定input的节点来获取value，所以每一个可修改的节点都有一个onchange的方法来修改，但是最后的保存按钮并不能控制一整行修改的内容。因此需要对当前的修改结果...]]></description><category></category></item><item><title><![CDATA[对前端网络请求的封装]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80316489</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80316489</guid><author>wengqt</author><pubDate>Mon, 14 May 2018 23:41:40 +0800</pubDate><description><![CDATA[对于一个后台管理系统来说，封装网络请求是非常有必要的，这样可以有效的避免代码的重用，同时对一个工程化的项目来说，合理的封装有利于项目的管理和进展。在网络请求少的情况下，可以写一个文件管理请求路径：var API = {
    //common
    login:baseUrl+`/login.do`,
    logout:`${baseUrl}/logout.do`,
    registe...]]></description><category></category></item><item><title><![CDATA[实现站内信通知系统]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80270520</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80270520</guid><author>wengqt</author><pubDate>Thu, 10 May 2018 21:40:22 +0800</pubDate><description><![CDATA[站内信系统是位于个人中心的一个小模块，在用户登录之后，进入个人中心，有一个站内信的导航按钮，点击进入站内信即可查看站内通知。站内通知的展示分为两种，一种是已读同时，一种是未读通知。站内信的实现需要是基于用户名的，因此发送请求的时候需要加入用户名作为参数，这就是我们的接口文档，前后台分离开发时，都是按照接口文档来进行对接的。...]]></description><category></category></item><item><title><![CDATA[前端实现用canvas绘制pdf]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80218669</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80218669</guid><author>wengqt</author><pubDate>Sun, 06 May 2018 22:37:56 +0800</pubDate><description><![CDATA[项目中，有时候会需要文件的预览，由于大部分浏览器都原生支持pdf格式文件的预览，所以只需要使用a标签跳转到pdf路径就可以预览pdf文件了。同样，为了提高兼容性，我们可以引用jquery.media.js文件来加载pdf，当然，前提是你已经引用了jquery。$('#inner').media({
                   width: '100%',
                ...]]></description><category></category></item><item><title><![CDATA[谈谈React router4 的坑]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80208612</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80208612</guid><author>wengqt</author><pubDate>Sat, 05 May 2018 20:55:15 +0800</pubDate><description><![CDATA[作为一个使用react开发的单页面web程序，智库项目放弃了传统的后台返回来管理路径的方式，采用前端管理路径的方式进行渲染。在这里，我们使用react router 4，react router 4 相比以前的版本有一些改变，比如出现了react-router 和 react-router-dom两个包，将&amp;lt;Router&amp;gt;替换为&amp;lt;BrowserRouter&amp;gt;等等。。。现在来...]]></description><category></category></item><item><title><![CDATA[文件上传的坑]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80188727</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80188727</guid><author>wengqt</author><pubDate>Thu, 03 May 2018 23:33:46 +0800</pubDate><description><![CDATA[在写文件上传接口的时候，我遇到了很多坑，以往使用jquery的ajax发送请求的content-type 都是默认的'application/json'，然而，发送文件需要使用formdata格式，所以我们需要将ajax中的contentType字段设置为false，然后还有需要注意的是，需要添加上一个字段processData设置为false，这里是为了对data参数进行序列化处理。现在，我们来...]]></description><category></category></item><item><title><![CDATA[使用Ant Design 的form组件进行表单检验]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80173820</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80173820</guid><author>wengqt</author><pubDate>Thu, 03 May 2018 00:03:56 +0800</pubDate><description><![CDATA[对于一个后台管理系统来说，出现最为频繁的就是表单，在登录的时候、查询的时候都需要提交表单。那么，使用了Ant Design框架的form表单要如何提交呢？当我们打开Ant Design官网，打开表单的Demo的时候，发现代码怎么会那么多，又臭又长，比自己平时不用框架时候的表单写起来还麻烦。下面是官网上的一个简单的登录框的例子（可以看到代码是真的长）。那么长的代码真的有用吗？import { For...]]></description><category></category></item><item><title><![CDATA[React组件通信——Event Bus]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/80114590</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/80114590</guid><author>wengqt</author><pubDate>Fri, 27 Apr 2018 22:58:51 +0800</pubDate><description><![CDATA[使用event bus进行非父子组件间的通信

首先，我们来回顾一下React中组件通信的方式：  


父子组件之间的通信，一般是通过props来 
简单来说，就是通过一个将需要通信的变量a定义在父组件中，然后通过props来传递给子组件，如果子组件要更改这个变量，那么父组件就需要定义setA方法，然后也通过props传递给子组件，这样就完成了父子组件之间的通信。
非父子组件之间的通信 
如果两...]]></description><category></category></item><item><title><![CDATA[js监听一个变量的变化]]></title><link>https://blog.youkuaiyun.com/wengqt/article/details/79945851</link><guid>https://blog.youkuaiyun.com/wengqt/article/details/79945851</guid><author>wengqt</author><pubDate>Sat, 14 Apr 2018 23:58:59 +0800</pubDate><description><![CDATA[监听一个变量的变化

目前主流的前端框架（例如：react、vue）都有的共同特点是数据绑定，他们通过对一个变量的监听，来实现变量变化时候的动态响应。当网页中的数据发生了变化，便立即调用相关的回调函数来更变dom节点中的内容，来实现数据视图的更新。

在智库这个项目中，由于种种原因，我们并没有用react和vue等框架，所以我们就需要使用其他的方法来实现数据流的绑定。

现在常用的数据绑定的方式有...]]></description><category></category></item></channel></rss>