<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MrFano的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MrFano</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MrFano]]></copyright><item><title><![CDATA[多个window onload的解决办法]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/86649034</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/86649034</guid><author>MrFano</author><pubDate>Fri, 25 Jan 2019 17:04:02 +0800</pubDate><description><![CDATA[ 

同一个页面有很多函数要用到window.onload,但又互相冲突，怎么解决呢，下面是看到的一个函数，和大家分享一下。


function addLoadEvent(func){   // 多个window.onload共用的封装函数
    var oldonload=window.onload; 
    if(typeof window.onload!='function'){ 
 ...]]></description><category></category></item><item><title><![CDATA[Node版本管理工具(NVM)的配置和使用]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/85597977</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/85597977</guid><author>MrFano</author><pubDate>Wed, 02 Jan 2019 09:50:06 +0800</pubDate><description><![CDATA[ 

由于以后的开发工作可能会在多个Node版本中测试，而且Node的版本也比较多，所以需要NVM来管理

安装操作步骤

1. 下载：[nvm-windows](https://github.com/coreybutler/nvm-windows/releases/download/1.1.0/nvm-noinstall.zip)
2. 解压到一个全英文路径

　　例：C:\node\nvm -...]]></description><category></category></item><item><title><![CDATA[vue-lazyload 简易上手教程]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/85006006</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/85006006</guid><author>MrFano</author><pubDate>Fri, 14 Dec 2018 17:01:01 +0800</pubDate><description><![CDATA[                                                                        

1) 在项目中安装依赖


$ npm install vue-lazyload -D

2) main.js 中加入vue-laryload 相关代码


import Vue from 'vue'
import App from './App.vu...]]></description><category></category></item><item><title><![CDATA[数组深拷贝]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/84031795</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/84031795</guid><author>MrFano</author><pubDate>Tue, 13 Nov 2018 16:59:55 +0800</pubDate><description><![CDATA[ 用法： var arr1 = deepClone(arr0)


export function deepClone (obj) {
  if (Array.isArray(obj)) {
    return obj.map(deepClone)
  } else if (obj &amp;amp;&amp;amp; typeof obj === 'object') {
    var cloned = {}...]]></description><category></category></item><item><title><![CDATA[中国省市县/区数据]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/84031686</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/84031686</guid><author>MrFano</author><pubDate>Tue, 13 Nov 2018 16:52:54 +0800</pubDate><description><![CDATA[ 

var city = {&quot;citylist&quot;:[{&quot;p&quot;:&quot;北京&quot;,&quot;c&quot;:[{&quot;n&quot;:&quot;东城区&quot;},{&quot;n&quot;:&quot;西城区&quot;},{&quot;n&quot;:&quot;崇文区&quot;},{&quot;n&quot;:&quot;宣武区&quot;},{&quot;n&quot;:&quot;朝阳区&quot;},{&quot;n&quot;]]></description><category></category></item><item><title><![CDATA[中国省市数据]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/84031502</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/84031502</guid><author>MrFano</author><pubDate>Tue, 13 Nov 2018 16:46:56 +0800</pubDate><description><![CDATA[
export const address = {
    '北京': ['北京'],
    '广东': ['广州', '深圳', '珠海', '汕头', '韶关', '佛山', '江门', '湛江', '茂名', '肇庆', '惠州', '梅州', '汕尾', '河源', '阳江', '清远', '东莞', '中山', '潮州', '揭阳', '云浮'],
    '上海': ['上海'],
...]]></description><category></category></item><item><title><![CDATA[去除字符串的所有空格]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83989794</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83989794</guid><author>MrFano</author><pubDate>Mon, 12 Nov 2018 12:02:44 +0800</pubDate><description><![CDATA[export let trimAllSpace = val =&amp;gt; {

if (typeof val === 'string') {

return val.replace(/\s/g, '');

}

throw new Error('string is must');

}]]></description><category></category></item><item><title><![CDATA[vue2.0 px与rem转换问题]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83542323</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83542323</guid><author>MrFano</author><pubDate>Tue, 30 Oct 2018 15:13:34 +0800</pubDate><description><![CDATA[ 

由于我们拿到的产品图标注都是px为单位的，为了不去计算px与rem的转换，我们使用px2rem插件，来捕捉当前项目的所有px，直接计算相对应数值，这样，以后写界面，就可以直接用px来构建界面，不用自己去计算啦

1、安装插件



 


	npm i postcss-px2rem --save
	
	
	npm install px2rem-loader --save
	
2、配置px2r...]]></description><category></category></item><item><title><![CDATA[如何使用手机访问前端HTML页面]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83541757</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83541757</guid><author>MrFano</author><pubDate>Tue, 30 Oct 2018 15:01:30 +0800</pubDate><description><![CDATA[可能有些同学一直用google手机模式调试前端移动页面，但毕竟会带来一些偏差，今天来介绍一下真机调试前端HTML页面的方法和经验。

在cmd命令行里输入“ipconfig”，找出自己的ip



 

一般IPV4地址就是你的ip

举个例子，一般你是localhost:8080去调试。

一般gulp起的服务器，可以在gulpfile.js文件中找到localhost并改为ip重启。

Vue...]]></description><category></category></item><item><title><![CDATA[vue axios 请求封装]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83417182</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83417182</guid><author>MrFano</author><pubDate>Fri, 26 Oct 2018 16:48:18 +0800</pubDate><description><![CDATA[                 Vue axios 的封装心得，直接上代码

 

 

axois 的通用或者特殊配置，比如登陆接口的token,用不到就不用配置


axios.interceptors.request.use((config) =&amp;gt; {
   if{
     可以给某个接口进行特殊配置
    }
  return config;
})

 

axios 的请求封...]]></description><category></category></item><item><title><![CDATA[gulp-cli 一个不用框架的小项目]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83342533</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83342533</guid><author>MrFano</author><pubDate>Wed, 24 Oct 2018 13:17:34 +0800</pubDate><description><![CDATA[项目产生原因： 不能用框架，于是自己用gulp 搭建了一个小项目。如有需要自己完善哟

项目目录介绍：



码云地址：https://gitee.com/mrfanxd/gulp-cli.git 自己拿哦...]]></description><category></category></item><item><title><![CDATA[三步学会reset和revert回滚，撤销revert]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/83114362</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/83114362</guid><author>MrFano</author><pubDate>Wed, 17 Oct 2018 18:36:50 +0800</pubDate><description><![CDATA[                                                      revert 

$ git revert commit id

$ git commit

$ git push

                                                     reset 慎用


$ git reset --hard comm...]]></description><category></category></item><item><title><![CDATA[vue rem文件的导入问题]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/81218936</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/81218936</guid><author>MrFano</author><pubDate>Thu, 26 Jul 2018 14:01:16 +0800</pubDate><description><![CDATA[rem文件的导入问题：
我们在做手机端时，适配是必须要处理的一个问题。例如，我们处理适配的方案就是通过写一个rem.js，原理很简单，就是根据网页尺寸计算html的font-size大小，基本上小伙伴们都知道，这里直接附上代码，不多做介绍。

;(function(c,d){var e=document.documentElement||document.body,a=&quot;orientationch...]]></description><category></category></item><item><title><![CDATA[Vue 定时器问题]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/81218888</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/81218888</guid><author>MrFano</author><pubDate>Thu, 26 Jul 2018 13:58:51 +0800</pubDate><description><![CDATA[定时器问题:
我在a页面写一个定时，让他每秒钟打印一个1，然后跳转到b页面，此时可以看到，定时器依然在执行。这样是非常消耗性能的。如下图所示：

解决方法1：

首先我在data函数里面进行定义定时器名称：

data() {            
    return {                              
        timer: null  // 定时器名称  ...]]></description><category></category></item><item><title><![CDATA[git记住密码]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/80819274</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/80819274</guid><author>MrFano</author><pubDate>Tue, 26 Jun 2018 19:03:30 +0800</pubDate><description><![CDATA[是不是受够了http方式每次输入用户名和密码？

好吧下面说说解决这个问题的方法：

方法一：git bash输入命令 git config --global credential.helper store



ok,回车，这个时候已经记住了密码，就是这样，没了。

可能下一次还要密码的情况，没关系，在输入一次，因为这可能是最后一次。

 

如果想自己设置时间，可以这样做：
git confi...]]></description><category></category></item><item><title><![CDATA[让IE支持HTML5]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/80760924</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/80760924</guid><author>MrFano</author><pubDate>Thu, 21 Jun 2018 15:14:17 +0800</pubDate><description><![CDATA[Htmlshiv.js 和 responds.min.js

HTML5越来越成为主流，被广大搜索引擎所使用，但IE对HTML5的支持却常被人唾弃。

解决方案有两种：

1.为网站创建多套模板，通过程序对User-Agent的判断给不同的浏览器用户显示不同的页面，比如优酷网就是采用的这种模式。（缺点：工程量大）

2.使用javascript来使不支持HTML5的浏览器支持html标签。是大部分...]]></description><category></category></item><item><title><![CDATA[git 命令行]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/78062126</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/78062126</guid><author>MrFano</author><pubDate>Wed, 20 Jun 2018 10:26:43 +0800</pubDate><description><![CDATA[$ git init  // 初始化一个Git仓库
$ git status   // 查看仓库的状态
$ git add .   // 将所有修改添加到暂存区
$ git add *  // Ant风格添加修改
$ git add *Controller   // 将以Controller结尾的文件的所有修改添加到暂存区
$ git add Hello*   // 将所有以Hello开头的文件的...]]></description><category></category></item><item><title><![CDATA[vue swiper 层叠轮播]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/79931923</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/79931923</guid><author>MrFano</author><pubDate>Fri, 13 Apr 2018 17:21:15 +0800</pubDate><description><![CDATA[

&amp;lt;template&amp;gt;

&amp;lt;div class=&quot;swiper&quot;&amp;gt;

&amp;lt;swiper :options=&quot;swiperOption&quot;&amp;gt;

&amp;lt;swiper-slide v-for=&quot;(item, index) in slides&quot; :key=&quot;index&quot;&amp;gt;&amp;lt;img :src=&quot;item&quo]]></description><category></category></item><item><title><![CDATA[vuex+localStorage vuex刷新失效？]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/79913646</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/79913646</guid><author>MrFano</author><pubDate>Thu, 12 Apr 2018 14:51:39 +0800</pubDate><description><![CDATA[想必大家在使用vuex的时候,vuex刷新后数据失效的问题会困扰大家，本文教大家如何利用本地缓存保存状态

Install

npm install vuex-along --save
1.import 导入
import vuexAlong from 'vuex-along'
  2.add to store
添加至store的 plugins 的数组里
export default new V...]]></description><category></category></item><item><title><![CDATA[数组/对象 深拷贝]]></title><link>https://blog.youkuaiyun.com/MrFano/article/details/79913184</link><guid>https://blog.youkuaiyun.com/MrFano/article/details/79913184</guid><author>MrFano</author><pubDate>Thu, 12 Apr 2018 14:31:56 +0800</pubDate><description><![CDATA[ 

很多同学在操作数组和对象的时候，如果只是简单地赋值，就和原来的数据同时发生改变

所以有了深拷贝的需要，话不多说，直接上代码：

 

 

export function deepClone (obj) {

let result = Array.isArray(obj) ? [] : {}

for (let key in obj) {

if (obj[key] !== null) {...]]></description><category></category></item></channel></rss>