<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cotexarm7的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cotexarm7</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cotexarm7]]></copyright><item><title><![CDATA[npm和webpack学习]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/145282035</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/145282035</guid><author>cotexarm7</author><pubDate>Tue, 21 Jan 2025 13:42:31 +0800</pubDate><description><![CDATA[在编译之后不会写入任何输出文件，而是将 bundle 文件保留在内存中，然后将它们作为可访问资源部署在 server 中，就像是挂载在 server 根路径上的真实文件一样。安装在node_modules，在package.json的 devDependencies，生产环境打包时，不会出现在依赖包里。安装在node_modules，在package.json的 dependencies，生产环境打包时，会出现在依赖包里。代码分离：将一个js文件，打包为多个js文件，实现按需加载，并行加载，]]></description><category></category></item><item><title><![CDATA[react学习]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/145280198</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/145280198</guid><author>cotexarm7</author><pubDate>Tue, 21 Jan 2025 11:24:13 +0800</pubDate><description><![CDATA[JSX是一种JavaScript的扩展语法，允许在JavaScript代码中直接编写类似HTML的标记。JSX代码最终会被编译成普通的JavaScript代码。相当于vue组件的 mounted，例如组件初次加载执行。// 函数组件  直接运行以下函数。ajax请求获取数据。]]></description><category></category></item><item><title><![CDATA[axios 上传（上传既包括二进制文件，又包括json数据）、下载（下载流数据另存为数据，流数据转换为json）]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/107952147</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/107952147</guid><author>cotexarm7</author><pubDate>Wed, 12 Aug 2020 10:46:17 +0800</pubDate><description><![CDATA[下载axios配置


function downloadPolicy(data) {
    return request({
        url: '/api/invo/goods/downloadPolicy',
        method: 'post',
        data,
        responseType: 'blob'
    });
}

流数据转换为excel文件并下载到本地


             downloadPolicy(data).then(res =]]></description><category></category></item><item><title><![CDATA[border-left、border-right、border-top、border-bottom深入理解]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/89361556</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/89361556</guid><author>cotexarm7</author><pubDate>Wed, 17 Apr 2019 18:44:20 +0800</pubDate><description><![CDATA[一、有宽和高

1.一个矩形的4个边的组成部分


.box {
    border-right: 55px solid red; 
    width: 200px; height: 200px; 
    border-bottom: 55px solid blue;
    border-left: 55px solid yellow;
    border-top: 55px solid...]]></description><category></category></item><item><title><![CDATA[兼容ios和android的带有输入框的底部悬浮按钮]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/89360137</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/89360137</guid><author>cotexarm7</author><pubDate>Wed, 17 Apr 2019 17:21:41 +0800</pubDate><description><![CDATA[需求：

页面底部有个fixed的button，和一个处于正常文档流中的输入框，当尝试往输入框输入内容时，会唤起手机键盘。需求是唤起键盘的时候，fixed的按钮不希望被键盘顶上去，即不希望按钮在键盘上部，而是希望按钮仍旧在底部，被键盘盖住。

现象：

ios：按钮有时候会被键盘顶上去，有时候不会。

安卓：一定会被键盘顶上去

解决方法：

android：产生此现象的原因是：页面的窗口发生了变...]]></description><category></category></item><item><title><![CDATA[常用的css]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/89338832</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/89338832</guid><author>cotexarm7</author><pubDate>Tue, 16 Apr 2019 18:41:11 +0800</pubDate><description><![CDATA[1.手机端：防止用户长按文字选中（user-select）

兼容性：

ios：加-webkit-前缀全部支持

android：加-webkit-前缀全部支持

2.手机端常用的transform（translate/scale/rotate）

兼容性

ios: ios8.1-8.4 要加上-webkit-前缀 其余系统版本支持

android: 安卓4.4及以下要加上-webkit-...]]></description><category></category></item><item><title><![CDATA[angular权威教程(ng-book2)--第3章 Angular的工作原理]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/88414258</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/88414258</guid><author>cotexarm7</author><pubDate>Mon, 18 Mar 2019 18:23:39 +0800</pubDate><description><![CDATA[3.1 应用

1.利用angular-cli创建一个项目


1.ng new inventory_app  #创建一个新的项目
2.ng generate component product #新建一个组件

2.一个组件的构建方法


@Component({
    selector: 'single-component',
    inputs: ['name', 'age'],
   ...]]></description><category></category></item><item><title><![CDATA[angular权威教程(ng-book 2)--第二章：TypeScript]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/88405422</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/88405422</guid><author>cotexarm7</author><pubDate>Tue, 12 Mar 2019 09:29:59 +0800</pubDate><description><![CDATA[第二章 TypeScript

2.4 内置类型

2.4.1字符串


var name: string = 'wfz'

2.4.2 数字


var age: number = 45

2.4.3 布尔类型


var married: boolean = true;

2.4.4 数组


var jobs: Array&amp;lt;string&amp;gt; = ['IBM', 'Microsoft...]]></description><category></category></item><item><title><![CDATA[阿里云oss h5页面上传实践]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/85243512</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/85243512</guid><author>cotexarm7</author><pubDate>Tue, 25 Dec 2018 10:20:53 +0800</pubDate><description><![CDATA[一、目的：将手机端的图片或者视频上传至阿里云oss服务器，同时返回资源url

二、原理：https://help.aliyun.com/document_detail/31988.html?spm=a2c4g.11186623.2.13.2e2e350aF5un5N

发送合法的content-type为multipart/form-data的post请求到阿里云服务器。

一个合法的请求如下，...]]></description><category></category></item><item><title><![CDATA[【swiper+audio】swiper轮播的同时，播放相应的音频]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/84796937</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/84796937</guid><author>cotexarm7</author><pubDate>Tue, 04 Dec 2018 19:09:43 +0800</pubDate><description><![CDATA[1.代码，每次轮播会播放对应音频


&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;&amp;gt;
  &amp;lt;link rel=&q]]></description><category></category></item><item><title><![CDATA[inline-block按行排列有3px的误差]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/82108871</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/82108871</guid><author>cotexarm7</author><pubDate>Mon, 27 Aug 2018 14:33:59 +0800</pubDate><description><![CDATA[ 


&amp;lt;div class=&quot;line&quot;&amp;gt;
  &amp;lt;span class=&quot;item&quot;&amp;gt;&amp;lt;/span&amp;gt;
  &amp;lt;span class=&quot;item&quot;&amp;gt;&amp;lt;/span&amp;gt;
  &amp;lt;span class=&quot;item&quot;&amp;gt;&amp;lt;/span&amp;gt;
&amp;lt;]]></description><category></category></item><item><title><![CDATA[使用于所有手机的0.5px的border]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81942830</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81942830</guid><author>cotexarm7</author><pubDate>Mon, 27 Aug 2018 11:54:33 +0800</pubDate><description><![CDATA[1px的线在手机上会影响美感，太粗，这个时候，需要兼容所有手机的0.5px的线。iphone手机支持.5px的设置，字体方面也是支持任何大小的字体。而安卓手机不支持.5px的设置，浏览器会渲染为1px。在字体方面，安卓手机最小支持8px的字体设置，如果设置的再小点，还是显示为8px的大小。（Webkit内核的适用范围较为广泛，Android原生浏览器、苹果的Safari、谷歌的Chrome(And...]]></description><category></category></item><item><title><![CDATA[flex布局：justify-content、aign-content、align-items]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81870138</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81870138</guid><author>cotexarm7</author><pubDate>Mon, 20 Aug 2018 14:16:26 +0800</pubDate><description><![CDATA[1.justify-content：弹性盒子在主轴方向上的排列方式，例子


&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;title&amp;gt;test&amp;lt;/title&amp;gt;
    &amp;lt;style type]]></description><category></category></item><item><title><![CDATA[git]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81234965</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81234965</guid><author>cotexarm7</author><pubDate>Tue, 31 Jul 2018 10:51:34 +0800</pubDate><description><![CDATA[本地仓库由git维护的3棵树组成，一个是工作目录，即为当前正在操作的文件，一个是暂存区，它是一个缓存区域，临时保存你的改动，最后是head，指向你最新一次的commit。git commit 指的是将改动保存到head里。远程仓库跟head是一致的。

git pull = git fetch + git merge

git fetch: 将分支上的远程代码拉取到本地

git merge: 将...]]></description><category></category></item><item><title><![CDATA[hybrid开发--app和内部的h5页面的通信方式]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81278558</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81278558</guid><author>cotexarm7</author><pubDate>Mon, 30 Jul 2018 07:20:54 +0800</pubDate><description><![CDATA[app和其内部的h5页面通过JSBridge来进行通信。JSBridge提供两者之间的双向通信。

原理为：

1.js调用native的方法：注入API

注入 API 方式的主要原理是，通过 WebView 提供的接口，向 JavaScript 的 Context（window）中注入对象或者方法，让 JavaScript 调用时，直接执行相应的 Native 代码逻辑，达到 JavaScri...]]></description><category></category></item><item><title><![CDATA[webpack学习--模块解析（https://webpack.js.org/concepts/module-resolution/）]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81196446</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81196446</guid><author>cotexarm7</author><pubDate>Wed, 25 Jul 2018 10:10:05 +0800</pubDate><description><![CDATA[Module Resolution

解析器是通过绝对路径来定位一个模块的类库，一个模块可以依赖另一个模块：


import foo from 'path/to/module';
// or
require('path/to/module');

依赖的模块可以来自应用程序，或者第三方库。解析器帮助webpack找到require/import语句所需要打包的代码包。webpack利用enhan...]]></description><category></category></item><item><title><![CDATA[图解http（七）－web的攻击技术]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81111711</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81111711</guid><author>cotexarm7</author><pubDate>Thu, 19 Jul 2018 11:02:42 +0800</pubDate><description><![CDATA[第 11 章 Web 的攻击技术

互联网上的攻击大都将 Web 站点作为目标。本章讲解具体有哪些攻击 Web 站点的手段,以及攻击会造成怎 样的影响。

11.1 针对 Web 的攻击技术

简单的 HTTP 协议本身并不存在安全性问题,因此协议本身几乎不会成为攻击的对象。应用 HTTP 协议的服务器和客户端,以及运行在服务器上的 Web 应用等资源才是攻击目标。

目前,来自互联网的攻击大多是...]]></description><category></category></item><item><title><![CDATA[图解http（六）（确认访问用户身份的认证and基于http的功能追加协议、构建web内容的技术）]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81062662</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81062662</guid><author>cotexarm7</author><pubDate>Mon, 16 Jul 2018 15:06:53 +0800</pubDate><description><![CDATA[第8章  确认访问用户身份的认证

8.1 何为认证

http使用的认证方式：

BASIC 认证、DIGEST认证、SSL客户端认证、FormBase认证

8.2 BASIC认证



 

步骤 1: 当请求的资源需要 BASIC 认证时,服务器会随状态码 401 Authorization Required,返回带 WWW-Authenticate 首部字段的响应。该字段内包含认证的方式...]]></description><category></category></item><item><title><![CDATA[图解http协议－https协议（五）]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81027395</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81027395</guid><author>cotexarm7</author><pubDate>Mon, 16 Jul 2018 10:20:43 +0800</pubDate><description><![CDATA[第7章  确保web安全的https协议7.1 http的缺点1.通信使用明文，不加密，内容可能会被窃听2.不验证通信方的身份，因此有可能遭遇伪装3.无法证明报文的完整性，有可能被篡改。总结：通信双方的身份是假的、内容是假的、通信双方和内容是真的但是被第三方拿到了7.1.1 内容被盗解决办法：通信加密和内容加密http协议和ssl协议结合，ssl对通信加密，防止内容被窃听7.1.2 身份是假的无法...]]></description><category></category></item><item><title><![CDATA[图解http协议（四）(首部响应字段)]]></title><link>https://blog.youkuaiyun.com/cotexarm7/article/details/81012828</link><guid>https://blog.youkuaiyun.com/cotexarm7/article/details/81012828</guid><author>cotexarm7</author><pubDate>Thu, 12 Jul 2018 11:46:52 +0800</pubDate><description><![CDATA[6.5 首部响应字段服务端向客户端返回响应报文使用的字段，用于补充响应的附加信息、服务器信息，以及对客户端的附加要求等信息。6.5.1 Accept-Rangesaccept-ranges用于服务器告诉客户端它是否支持范围请求，取值2种，bytes和none，一个代表可以接受范围请求，一个代表不支持。6.5.2 ageAge: 600首部字段 Age 能告知客户端,源服务器在多久前创建了响应。字段...]]></description><category></category></item></channel></rss>