<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[web_gutianle的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/web_gutianle</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; web_gutianle]]></copyright><item><title><![CDATA[vite创建的vue项目公众号本地开发内网穿透]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/128254206</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/128254206</guid><author>web_gutianle</author><pubDate>Fri, 09 Dec 2022 15:45:43 +0800</pubDate><description><![CDATA[ngrok内网穿透]]></description><category></category></item><item><title><![CDATA[vue-cli-service不是内部或外部命令,也不是可运行的程序]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/127852312</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/127852312</guid><author>web_gutianle</author><pubDate>Mon, 14 Nov 2022 18:02:15 +0800</pubDate><description><![CDATA[vue项目运行vue-cli-service报错]]></description><category></category></item><item><title><![CDATA[ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repo]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/125160060</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/125160060</guid><author>web_gutianle</author><pubDate>Tue, 07 Jun 2022 10:15:23 +0800</pubDate><description><![CDATA[gitssh: connect to host abc.com: Connection timed out fatal: Could not read from remote repository]]></description><category></category></item><item><title><![CDATA[如何理解dpr]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/114095276</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/114095276</guid><author>web_gutianle</author><pubDate>Thu, 25 Feb 2021 17:40:53 +0800</pubDate><description><![CDATA[首先如何在设备上实现1px边框：
物理像素:   在视网膜屏下面, 显示的实际的像素颗粒，iphone6分辨率7501334px
逻辑像素:   可以认为成就是设备的宽度,css设置的像素，iphone6逻辑像素7501334px
dpr = 物理像素(设备像素) /逻辑像素(设备独立像素)
所以iphone的dpr为2
解决方式,第一种:
通过媒体查询方式:
.border { border: 1px solid #999 }
@media screen and (-webkit-min-device-p]]></description><category></category></item><item><title><![CDATA[h5页面获取当前用户连接wifi的ip地址_tcp/ip协议]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/110872413</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/110872413</guid><author>web_gutianle</author><pubDate>Tue, 08 Dec 2020 14:20:38 +0800</pubDate><description><![CDATA[let RTCPeerConnection =
        window.RTCPeerConnection ||
        window.webkitRTCPeerConnection ||
        window.mozRTCPeerConnection;
      let _this = this;
      if (RTCPeerConnection)
        (function () {
          let rtc = new RTCPeerConnection]]></description><category></category></item><item><title><![CDATA[vue.extend，mixins和vue.component的区别]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/109245465</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/109245465</guid><author>web_gutianle</author><pubDate>Fri, 23 Oct 2020 16:48:28 +0800</pubDate><description><![CDATA[1.vue.extend
Vue.extend就是传入一下组件options，然后返回了一个Vue的子类，也可以看做是一个组件构造函数。
例子：可以通过vue.component将这个vue子类注册到全局
&lt;!doctype html&gt;
&lt;html&gt;
&lt;head&gt;
&lt;meta charset="utf-8"&gt;
&lt;title&gt;在Vue中注册组件&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="]]></description><category></category></item><item><title><![CDATA[reduce的用法]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/108069923</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/108069923</guid><author>web_gutianle</author><pubDate>Tue, 18 Aug 2020 09:46:32 +0800</pubDate><description><![CDATA[1.语法
arr.reduce(callback,[initialValue])
reduce 为数组中的每一个元素依次执行回调函数，不包括数组中被删除或从未被赋值的元素，
接受四个参数：
初始值（或者上一次回调函数的返回值），当前元素值，当前索引，调用 reduce 的数组。
callback （执行数组中每个值的函数，包含四个参数）

    1、previousValue （上一次调用回调返回的值，或者是提供的初始值（initialValue））
    2、currentValue （数组中当前被处]]></description><category></category></item><item><title><![CDATA[vue移动端学生课表将二维数组自动合并行]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/107252316</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/107252316</guid><author>web_gutianle</author><pubDate>Fri, 10 Jul 2020 15:49:10 +0800</pubDate><description><![CDATA[由于项目的vant组件库没有表格，所以在此采用了原生的table将二维数组进行自动合并行，代码不太简洁，大牛请绕路，嘻嘻嘻

formatData(data){//处理返回数据
        let arr = data.slice(0,data.length-2)
        for(let i=0;i&lt;arr.length;i++){
            let num =0
           for(let j=0;j&lt;arr[i].length;j++){
       .]]></description><category></category></item><item><title><![CDATA[按周切换的vue移动端学生课表日期]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/107252096</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/107252096</guid><author>web_gutianle</author><pubDate>Fri, 10 Jul 2020 15:37:02 +0800</pubDate><description><![CDATA[showCourse() {//初始化判断当前日期所在的周次
        var dateArray = [];
        //开始查询日期
        var date =JSON.parse(JSON.stringify(new Date(2020,2,2)));//设置初始开学日期，注意：这里第二个参数2表示3月，即开学日期为2019年3月2日
        date = new Date(date)
        var dateTemp;
        //第一周天数不确定
.]]></description><category></category></item><item><title><![CDATA[优化项目通过引入webpack的externals加载外部cdn资源]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/106711826</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/106711826</guid><author>web_gutianle</author><pubDate>Fri, 12 Jun 2020 11:09:59 +0800</pubDate><description><![CDATA[为什么通过引入webpack的externals加载外部cdn资源？
因为通常引入资源是根据important语法导入第三方依赖包最终会打包到同一个文件中，从而导致单文件打包文件体积过大
因此有了以下方案


最后可以把main.js中把引入的第三方依赖包去掉

...]]></description><category></category></item><item><title><![CDATA[解决eslint语法和vscode格式化工具的冲突问题]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/106710660</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/106710660</guid><author>web_gutianle</author><pubDate>Fri, 12 Jun 2020 10:34:32 +0800</pubDate><description><![CDATA[1.在项目根目录下新建一个.prettierrc文件
{
  "semi":false, //代码结束不加分号
  "singleQuote":true,//使用单引号
  "printWidth":200  //超过两百个字符再换行
}


]]></description><category></category></item><item><title><![CDATA[项目发布阶段移除console]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/106709612</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/106709612</guid><author>web_gutianle</author><pubDate>Fri, 12 Jun 2020 10:14:13 +0800</pubDate><description><![CDATA[1.首先安装依赖插件
npm install babel-plugin-transform-remove-console --save-dev
2.在根目录新建一个babel.config.js
代码如下：
//这是项目发布时用到的插件
const prodPlugins = []
if(process.env.NODE_ENV === 'production'){
  prodPlugins .push('transform-remove-console')
}
modules.exports = {
 ]]></description><category></category></item><item><title><![CDATA[斐波拉契数列递归和不使用递归]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/106672221</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/106672221</guid><author>web_gutianle</author><pubDate>Wed, 10 Jun 2020 18:03:50 +0800</pubDate><description><![CDATA[1.递归
function fib(n){
if( n1 || n == 2){
return 1;
}
else{
return fib(n-1)+fib(n-2);
}
}
2.优化使用for循环实现
function fib2(n){
var res = [1,1];
if( n1 || n == 2){
return 1;
}
for(var i=2; i&lt;n; i++){
res.push(res[i-1]+res[i-2]);
}
return res[n-1];
}

...]]></description><category></category></item><item><title><![CDATA[正确姿势的verticle-align]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/106419545</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/106419545</guid><author>web_gutianle</author><pubDate>Fri, 29 May 2020 10:03:25 +0800</pubDate><description><![CDATA[1.先看后面一句“在表单元格中，这个属性会设置单元格框中的单元格内容的对齐方式。”这很容易理解，如果给一个表格的td加一个vertical-align:middle的样式，表格里面的内容会垂直居中，同样的如果给一个vertical-align:bottom就会底部对齐，如果给一个vertical-align:top就会顶部对齐。

 2.看前页一句“该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐。”专业的语言我不会说的，可以打个比喻：假设有两个行内元素a和b，a和b都是img，当a加了一个...]]></description><category></category></item><item><title><![CDATA[js判断手指的上滑，下滑，左滑，右滑，事件监听]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/105988144</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/105988144</guid><author>web_gutianle</author><pubDate>Fri, 08 May 2020 09:25:46 +0800</pubDate><description><![CDATA[原理：1：当开始一个touchstart事件的时候，获取此刻手指的横坐标startX和staerY；
2：当触发touchmove事件的时候，再获取此时手指的横坐标moveEndX和纵坐标moveEndY；最后，通过两次获取的坐标差值来判断手指在手机屏幕上的滑动方向。
代码：
$(“body”).on(“touchstart”, function(e) {
e.preventDefault();
...]]></description><category></category></item><item><title><![CDATA[ie不兼容Object.values]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/105808347</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/105808347</guid><author>web_gutianle</author><pubDate>Tue, 28 Apr 2020 10:44:28 +0800</pubDate><description><![CDATA[通过Object.keys获取属性值

]]></description><category></category></item><item><title><![CDATA[vue项目上传文件以及进度条]]></title><link>https://blog.youkuaiyun.com/web_gutianle/article/details/105580466</link><guid>https://blog.youkuaiyun.com/web_gutianle/article/details/105580466</guid><author>web_gutianle</author><pubDate>Fri, 17 Apr 2020 17:56:31 +0800</pubDate><description><![CDATA[1.首先声明一个formData对象。
2.把需要上传的参数利用append追加进去。
append(‘参数名’,‘值’)
第一个this.refs.upload.files[0],其实就是input标签加上ref唯一关键字就是upload。varfd=newFormData();fd.append(′image′,that.refs.upload.files[0],其实就是input标签加上re...]]></description><category></category></item></channel></rss>