wolyshaw

偶尔码字。

记录

2021年总结

今年比去年事情好像多了一点。 “身体是革命的本钱“,这句话很重要啊😂 然后终于开始存钱了,之前因为各种原因工作了几年一直没存到钱,这也算是一个突破。 虽然今年收入有提升但是也是从今年开始反倒是越来越不想上班了,开始担心年龄问题😂 拖延症好了一点,但又没有完全好,看来只能寄希望于明年了。 去年定的两个小目标:存钱、减肥,都有一定的进展,存钱算是完成,但是减肥只能算完成了一半,看来明年还得在这条道路上继续奋斗了 🙄
1 min read
2020 年终总结

2020 年终总结

2020好像很魔幻,2019年12月31日第一次看到有关新冠的热搜,当时有点没注意,完全没有想过这个词会伴随2020整年。 上半年,一直都呆在家里基本没出门,下半年已经趋向正常生活。 工作也换了一次,因为离家会更近一点。生活中开始喜欢记录行走的轨迹,照片,截止到今天记录了三万多个点。然后也开始考驾照,但是因为懒就去了一次,就,挺无语的。。。 上一篇文章还是2019年终总结,一年没写倒不是因为工作太忙,主要还是比较懒,原本准备写一个小程序:“时光推送“,写一段内容然后在特定的时间通过邮件,短信等形式通知。由于比较懒现在才开始写了一小部分。 明年的计划,实际上还没怎么想好, 再买一套房? 买一辆代步车? 赚一个小目标? ...... 奥要不明年再说🙄🙄🙄
1 min read

2019 年终总结

按照之前遗忘的惯例每年底都会写一篇文章总结一下(去年忘记除外),其实也算不上什么总结只是想到什么写点什么不然感觉一年又白过了。 今年和往年一样其实也是很平淡的一年,没有发生什么大事只是换了一个城市,换了一份工作 虽然换了工作但是技术栈也没有换的很多还是主要是React这块,但是和之前不同的是接触到的东西也更多了,比较偏向于解决实际的问题 收获最大的还是技术还是比较大的提升,游戏的技术也是突飞猛进 不过和之前一样的是一年下来也没有存到钱💰,还是一样穷。 Ghost的编辑器太难用了,就这么多吧。
1 min read
javascript

react-router 使用HashRouter时微信jssdk分享的问题

一次开发中使用用jssdk中会修改当前分享中的内容以及链接之后,进行测试时使用android设备进行分享,发现无法获取到hash值的内容。ios设备正常,进行多次Google之后发现这个是jssdk诸多坑中的一个。 例如设置分享的url地址如下: https://xwlong.com/wechat/#/detail 实际android分享的地址是: https://xwlong.com/wechat/ 这样路由的就没有效果了 解决办法: 实际上解决办法很简单,加上任意的search参数,或者只加上一个?也可以。如下: https://xwlong.com/wechat/?#/detail const setShareUrl = href => { const url = new URL(href) if(!url.search) { url.search = '?' } return url } 以上😊
1 min read
react-float react 浮动组件
react

react-float react 浮动组件

react-float 是一直都想做的。很早就写了第一版,不过写的自己都觉得看不下去。因为感觉对react原理不熟悉导致第一版实际上完全不能用。 我的想法是做一个组件全局可以任意地方可以打开。因为现在用的很多都是类似antd 从外部定义弹窗当前状态。我希望可以有一个全局的状态控制弹窗的状态。 第一时间想到的是使用redux控制。但是马上就遇到了问题, 1. 必须要使用此组件的使用redux 2. action还有reducer需要靠使用这个包的项目定义,太麻烦了 于是放弃了。 然后又想像redux和react-router这样的模式。外部定义一个组件利用context保存浮动层的状态。 但是也遇到了一个问题就是当顶级的组件状态修改后子组件没有获取到修改后的状态,于是有放弃了旧版的。刚好react 16.3 有现在的新版 context API可以解决这个问题。 这样解决了之后如果使用传统的方式直接条件判断是否渲染的话,因为定义组件时节点的位置就已经定了,多个浮动层同时打开的话会有层级的问题。为了解决这个问题使用了react 16推出的createPortal
2 min read
js修改返回到app的记录
javascript

js修改返回到app的记录

有点标题党了,其实无法直接通过js修改返回app的方法。只是一个小技巧。 风平浪静的一天突然测试疾步走来提了一个不知道算不算前端的bug。虽然并不是给我提的,但是我突然想到了一个思路,具体的问题如下:主页面a 可以选择地址,地址列表b, 在a页面跳转到b页面b页面操作完成后跳转回a页面继续操作,需要点击app的返回不能回到b而是直接回到app 思路就是利用 window.history.replaceState 修改当前的URL然后返回的时候就会回到这里修改的URL再这个页面利用a标签返回到app 1.创建一个页面 returnapp.html,用来执行返回到app的 大概代码如下: const a = document.createElement('a') a.href = 'youapp://' a.click() 其实可以对这个页面传不同的参数返回到不同的页面 2.页面跳转前修改当前页面的地址 当在选择完地址之后,修改当前页面的地址到:retutnapp.html window.history.replaceState(null, null,
2 min read
微信小程序开发
记录

微信小程序开发

这段时间尝试了一下微信小程序开发,感觉现在坑还是非常多的。官方的坑最多于是试着找了下有没有组件化的方案。目前用的比较多的有两个wepy, 和mpvue,我更倾向于后者。 一、官方wss 1.首先官方不支持组件化感觉开发起来就不是很爽 2.并且如果需要加入npm模块这些不方便 3.限制比较大。例如同时最多只能发起5个请求。虽然一般不会同时请求这么多 二、wepy 其实最开始了解小程序的框架就是这个,并且使用这个开始了。 1.支持组件化 2.可以突破一些限制 3.支持Async Functions , Promise这些 但是对于父组件传值给子组建的时候特别不方便,并且循环组件时有个大坑,就是组件只会初始化一次,如果是同时使用多次可以修改实例名称,但是循环就不好处理了。其他人提的类似的bug#809 三、mpvue 使用wepy的时候刚好遇上了mpvue发布了,看到wepy的问题只好尝试了一下感觉非常不错 1.和vue一样的写法 2.支持Vuex 3.修改部分代码可以将触屏版的转至小程序或者将小程序转为触屏版 但是由于刚刚发布还有很多东西
2 min read
react 服务端渲染

react 服务端渲染

完整的项目例子:https://github.com/wolyshaw/react-init 文章内介绍服务端渲染的版本 * react 16.2.0 * redux 3.7.2 * react-router-dom 4.2.2 * react-helmet 5.2.0 公用代码部分 一般来说 Router 组件下面的都可以公用的 首先创建两个文件 * 源文件目录下创建render.js * webpack.config.render.js (用于打包上面的js) 在定义路由时为了配合matchRoutes这里的路由需要是一个对象类似这样,可以创建一个单独的文件导出,方便客户端与服务端公用。 import React, { PureComponent } from 'react' import Bundle from 'components/elements/Bundle' const
4 min read

2017年终总结

又是一年最后一天,一年好像很平淡没有什么意外发生。 技术上今年主要是在学react也算还可以。 * 自己弄了一个脚手架快速生成 * 一个弹出层的react-float。主要是可以用在弹窗侧边栏这些浮动的组建 生活上很平淡 * 付了一年的房贷还有一年的房租感觉钱包被掏空了。 * 第一次出国旅游。 明年展望 * 技术是希望继续深入了解react如果有时间和精力了解一下源码还有以react完善现在的脚手架 * 希望可以把“爱玩”这个项目继续完善下去
1 min read
react-router 更新至 v4.0.0
记录

react-router 更新至 v4.0.0

react-router前一段时间从3.xx到4.xx意味着很多API都有变化。去看了下react-router GitHub主页 和react一样也分成了几个包 * react-router * react-router-dom * react-router-redux * react-router-native * react-router-config 一般使用了react-redux使用前面三个就可以了。 除了分开以外还有很多API都有点区别。比如: * 之前有IndexRouter可以作为默认的路由使用,现在好像已经被移除了 * 还有getComponents这个也被移除了。之前可以使用这个来做按需加载 * 等等 具体的可以直接去看官方文档 react-router刚更新到4.0.0没多久还在看文档中,目前按需加载还不太明白怎么弄只找到了一个issues有关于这一块。有时间再去看看然后看情况更新一下。 2017-04-11 更新 文档中有对于按需加载的说明详见
1 min read
React 脚手架与yeoman generator制作
react

React 脚手架与yeoman generator制作

闲来无事加上react配置起来有点麻烦研究了一下yeoman这个脚手架工具,按照自己的习惯制作了一个,共的来说比较简单。 怎么制作yeoman generator就不多说了网上一大堆教程,建议参考:写一个自己的 Yeoman Generator,也可以对照着现有的generator制作,满足需求即可,可以参考我的generator-react-init 可能遇到的问题 * 制作时想再本地测试,可以在此项目根目录执行npm link可将此项目链接到全局,执行yo project-name制作完成后npm unlink取消即可 * 制作项目的名称需要以generator-*开头,这样目录名称就会是generator-project-name,但是执行时不需要generator-。
1 min read
升级服务器系统,所有站点配置https
记录

升级服务器系统,所有站点配置https

这几天看到阿里云提供了ubuntu 16.04的支持刚好元旦放假没事情就升级了。 * ubuntu 14.04 > 16.04 * nginx 1.4.6 > 1.10.0并增加了sni支持 * ghost 0.7.0 > 0.13.0 * 其他域名全部安装https ubuntu 系统直接用更换系统盘的方式安装了 nginx 由于不是很了解服务器的配置踩了很多坑,其中升级nginx的时候,查询到sni支持需要make方式安装,所以一直用编译的方式安装nginx,但是安装的时候一直安装不上去用了很多的时间,最后尝试直接sudo apt-get install nginx就可以了,并且支持sni。 ghost 这个直接获取新的源码覆盖 * core/ * index.js * package.js 然后删除node_modules 重新执行npm i 就可以了 https 最后https使用的是免费的Let's
1 min read

2016 总结

2016好像发生了很多事情,毕业、工作、租房什么的,也留下了很多遗憾。和往年一样很多想做的事情都没有做,有好多计划都还没有完成。只能希望明年继续完成了。 2015也记录了一个总结但是好像并没有说什么2015 总结 2017计划 * 首先是一直计划但是一直没有完成的几个练手的个人项目 * 一个后台项目 site_api * 个前台项目 play * 提升能力水平吧 * react * nodejs * es6 * 希望养成晨跑的习惯 * 希望搞一套好一点的电脑 * 希望出去多走走,旅游一下 希望上面这些不停留在计划中吧
1 min read

react - 学习

使用 react webpack es6 试水的时候,使用 webpack 转 es6时发现一值会报错,然后到官方下载demo 然后测试运行发现并没有问题。然后仔细对比发现就是 npm 安装的时候版本的问题 在package.json 文件中的dependencies中注意各个包的版本。 终端报错提示: Module build failed: Error: Cannot find module 'babel-plugin-transform-es2015-spread' 截图: 总结:报错不一定一定是代码出错,可能是使用依赖版本出错。各方面都要检查
1 min read
IE坑
记录

IE坑

今天做一个活动页面,回来后测试IE浏览器,有一块ajax获取的内容一直空白,其他的都正常,打开调试工具就就好了,这个感觉特别奇怪,刚开始以为是很高大上的错误.ps:IE的开发工具非常非常不好用 查找bug思路 排除CSS问题 因为很少针对IE做兼容,开始以为是CSS上面的问题,后来仔细看来一下,既然打开调试工具之后可以正常显示那就不应该是样式的问题,不然的话很定最后也不会显示的,于是判断是js的问题 js bug 位置判断 由于js文件中其他的都可以正常执行至于请求的无法获取,于是加上了很多console.log(),发现控制台没有日志出现,刚开始以为是函数不执行,于是找了好久,在正式环境下是HTTPS的后来IE终于弹了一个错误是第几行几个个字符的位置,于是搜索发现原来是一个很坑的问题 原因 IE8下面的console.logo()这类的都需要加上window,完整的是window.console.log() 总结 多搜索,仔细,认真,远离IE
1 min read
持续集成---coding-- Webhook
记录

持续集成---coding-- Webhook

主要实现的功能就是在本地提交代码之后,服务器可以自动pull代码然后使用新的代码 coding 界面 其实原理也蛮简单的,就是一但获取到你的push请求或者其他的请求(根据你自己情况选择) 之后会发送post请求到上面填写的URL,建议填写上一个token,做一下判断,避免其他程序请求这个URL造成pull请求,请求之后就是后端处理事件了. 今天闲着没事就用nodejs实现了一下感觉还是不错的,但是有个问题,nodejs更新程序的代码要重启进程,这里只可以在回调再重启应该可以,具体也没有试过 执行pull的语句是有child_process使用process.exec('cd /root/auto_test && git pull',function(){//callback..}) 总的来说可以
1 min read
day one 2 开始日记
记录

day one 2 开始日记

昨天起就听说day one 2这个软件可以找到免费兑换码(具体是在Apple store 精选最下面有限免)中于是下载了一个感觉非常不错,指纹密码解锁,日记加入了天气信息,地址信息,步数等很全面,可以加入图片音乐等.今天同时开始日记的时候同时还有现在加入公司三个多月了,跟着做了一点东西,感觉太粗心了,丢三落四的. 学习计划 1.react 2.前端自动化工具 3.ecmascript 6 暂定吧
1 min read
下一个2月29号

下一个2月29号

今天看到了一个帖子写一句话在这里,下一个 2 月 29 号来看,本来想回个帖的,但是觉得放在博客里面好一点。 目前2016年的2月29日在武汉做的是前端开发,已经工作快3个月了现在状态还是实习阶段,希望下个2月29日可以更好吧。 不过我第一个域名是在2012年注册的是四年前,现在看起来都好久了。 希望下一个四年的时候可以出去逛逛,有不一样的生活状态吧!
1 min read
WordPress API计划
WordPress

WordPress API计划

因为自己有几个网站都是使用WordPress建立的之前读取数据不是很方便,并且也想弄个nodejs项目练练手,于是就想制作一个这样的小东西,主要功能是让nodejs读取数据库把数据读出来以json数据的形式输出,后续也会加上写入的功能,还有就是如果制作APP的话也可以使用这套API 目前已经基本的弄出来了,就是各个API详细的写一下了. 其实WordPressAPI插件还是蛮多的,不过主要是想拿nodejs练手的,并且使用插件还要每个WordPress的网站都安装上比较麻烦还不如写一套出来.
1 min read
url各个部分获取方法
javascript

url各个部分获取方法

偶然看到了一个通过js获取URL协议hostname等方法的办法。 记录一下,免得忘记了 地址:http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ 把函数也记录一下吧! `// This function creates a new anchor element and uses location // properties (inherent) to get the desired URL data. Some String // operations are used (to normalize results across browsers). function parseURL(url) { var a = document.createElement('a'); a.href = url;
1 min read
根据鼠标滚动隐藏、显示导航栏或者其他元素
javascript

根据鼠标滚动隐藏、显示导航栏或者其他元素

之前有看到过一个插件Headroom.js,可以设置元素的显示或者隐藏,感觉很厉害,之前夜弄过,后来把这个插件取消了,因为不喜欢插件,今天没事自己写了一个很简单的只控制了某一个元素的显示与隐藏,代码很简单,当然功能不能与插件比较,并且使用了css3,还有新的选择器querySelector,获取class列表这样的所以没有考虑旧的浏览器。 相关链接 演示:http://htmlpreview.github.io/?https://raw.githubusercontent.com/wolyshaw/html/master/mousewheel 源码地址:https://github.com/wolyshaw/html/blob/master/mousewheel Headroom.js插件地址:http://wicky.nillia.ms/headroom.js/
1 min read
github page自定义域名
记录

github page自定义域名

前一段时间注册了一个新后缀(.click)的顶级域名,没有办法绑定到阿里云上面,也没有多大的用就想绑定到GitHub上面,记录一下具体步骤. 第一步:新建项目 打开GitHub新建一个项目,命名格式是xxx.github.io(xxx是自己定义的) 第二步:打开设置面板 就会有设置GitHub page的选项 设置一下就可以了 第三步:设置域名解析 很简单在域名解析页面加上一个cname解析就可以了,解析的值是你第一步设置的域名后面加上一个点,例如:xxx.github.io. 第四步:新建文件 解析正确并且生效之后会看到404页面 到项目中新建一个index.html文件作为引导 并且新建一个CNAME的文件,内容就是你需要绑定的域名就可以了 总结 完成以上几部就可以了,现在访问应该可以正确解析了,其实现在自己的博客已经有了,当时也不知道这个域名准备怎么处理,后来想了想那就有单个简单的演示文件的时候就上传到这个里面,然后外链出来处理吧!
2 min read