<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[dandan1924的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dandan1924</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dandan1924]]></copyright><item><title><![CDATA[解决 This is probably not a problem with npm. There is likely additional logging output above.]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/131973308</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/131973308</guid><author>dandan1924</author><pubDate>Fri, 28 Jul 2023 09:28:13 +0800</pubDate><description><![CDATA[【代码】解决 This is probably not a problem with npm. There is likely additional logging output above.]]></description><category></category></item><item><title><![CDATA[Vue中使用Typescript及Typescript基础]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/107432532</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/107432532</guid><author>dandan1924</author><pubDate>Fri, 28 Jul 2023 09:20:58 +0800</pubDate><description><![CDATA[准备工作
新建一个基于ts的vue项目
通过官方脚手架构建安装
# 1. 如果没有安装 Vue CLI 就先安装
npm install --global @vue/cli

最新的Vue CLI工具允许开发者 使用 TypeScript 集成环境 创建新项目。
只需运行vue create my-app然后选择选项，箭头键选择 Manually select features，确保选择了 TypeScript 和 Babel 选项

在已存在项目中安装typescript
在建好的vue项目中执行
vue]]></description><category></category></item><item><title><![CDATA[react-组件跨层级通信 Context]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/107613567</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/107613567</guid><author>dandan1924</author><pubDate>Mon, 27 Jul 2020 16:05:01 +0800</pubDate><description><![CDATA[在⼀一个典型的 React 应⽤用中，数据是通过 props 属性⾃自上⽽而下(由⽗父及⼦子)进⾏行行传递的，但这种做法对 于某些类型的属性⽽而⾔言是极其繁琐的(例例如:地区偏好，UI 主题)，这些属性是应⽤用程序中许多组件都 需要的。Context 提供了了⼀一种在组件之间共享此类值的⽅方式，⽽而不不必显式地通过组件树的逐层传递 props。
React中使⽤用Context实现祖代组件向后代组件跨层级传值。Vue中的provide &amp; inject来源于Context。
Context API.]]></description><category></category></item><item><title><![CDATA[对 Vue-SSR的理解和使用场景]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/107371170</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/107371170</guid><author>dandan1924</author><pubDate>Wed, 15 Jul 2020 23:27:58 +0800</pubDate><description><![CDATA[定义
SSR解决方案，后端渲染出完整的dom结构返回，前端拿到的内容包括首屏和spa结构，应用激活后按照spa方式运行，这种页面渲染方式被称为服务端渲染（server side render）
官网上对此ssr的定义
Vue.js 是构建客户端应用程序的框架。默认情况下，可以在浏览器中输出 Vue 组件，进行生成 DOM 和操作 DOM。然而，也可以将同一个组件渲染为服务器端的 HTML 字符串，将它们直接发送到浏览器，最后将这些静态标记"激活"为客户端上完全可交互的应用程序。
服务器渲染的 Vue.js ]]></description><category></category></item><item><title><![CDATA[Vue查看看源码的技巧]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/107300980</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/107300980</guid><author>dandan1924</author><pubDate>Sun, 12 Jul 2020 18:30:56 +0800</pubDate><description><![CDATA[搭建调试环境

获取地址：git clone https://github.com/vuejs/vue.git
安装依赖：npm i
安装rollup：npm i -g rollup(因为是用rollup打包的)
script修改dev脚本 加上–sourcemap

"dev": "rollup -w -c scripts/config.js --sourcemap --environment TARGET:web-full-dev",

作用：打包之后 dist 下多了map文件，可以和源码进行很好的映]]></description><category></category></item><item><title><![CDATA[npm registry]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/106858384</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/106858384</guid><author>dandan1924</author><pubDate>Fri, 19 Jun 2020 16:04:23 +0800</pubDate><description><![CDATA[1.持久使用，设置原npm地址
npm config set registry http://registry.npmjs.org 

2.临时使用
npm --registry https://registry.npm.taobao.org install express

注意：如果下载公司私有的npm
（1）npm set registry ip:端口 【例如 http://120.120.120.101:4433 】
（2）npm adduser --registry  ip:端口 【例如 http]]></description><category></category></item><item><title><![CDATA[es6之flat]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/106407788</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/106407788</guid><author>dandan1924</author><pubDate>Thu, 28 May 2020 16:25:24 +0800</pubDate><description><![CDATA[es6之数组的flat()，flatMap()，多维数组变一维数组扩展
一、flat()：
1.负责将多维数组---&gt;一维数组。该方法返回一个新的数组，对原数据没有影响。
[1,2,[2,3],[2,2]].flat()
//[1, 2, 2, 3, 2, 2]

2.flat()默认只会“拉平”一层，默认为1，如果想要“拉平”多层的嵌套数组，可以将flat()方法的参数写成一个整数，表示想要拉平的层数。
[1, 2, [3, [4, 5]]].flat()
// [1, 2, 3, [4, 5]]
]]></description><category></category></item><item><title><![CDATA[es6之set]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/106337837</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/106337837</guid><author>dandan1924</author><pubDate>Mon, 25 May 2020 18:26:41 +0800</pubDate><description><![CDATA[基本概念

Set数据结构，类似于数组，但是 它的成员都是唯一的 ，其构造函数可以接受一个数组作为参数


set对象允许存储任何类型的唯一值,无论是原始值或者是对象引用;
set对象是值的集合,元素只会出现一次,即Set中的元素是唯一的.

let arr = [1,2,3,1,2,3]
let set = new Set(arr)
console.log(set) //[1,2,3]

值得注意的是,NaN被Set认为是相同的,{}被认为是不同的
var set = new Set([{},{}])
s]]></description><category></category></item><item><title><![CDATA[数组-常用的数组遍历方法]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105347948</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105347948</guid><author>dandan1924</author><pubDate>Mon, 06 Apr 2020 17:49:48 +0800</pubDate><description><![CDATA[常用的11种数组遍历方法:
1、for循环语句
2、forEach数组对象内置方法　(es5)　
3、map数组对象内置方法　　
4、filter数组对象内置方法　　
5、reduce数组对象内置方法　　
6、some数组对象内置方法　和 every数组对象内置方法
7、indexOf数组对象内置方法 和 lastIndexOf数组对象内置方法　　
8、for in循环语句 和 for of循环语...]]></description><category></category></item><item><title><![CDATA[数组-判断数组的方法及他们的区别和优劣]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105347933</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105347933</guid><author>dandan1924</author><pubDate>Mon, 06 Apr 2020 17:48:54 +0800</pubDate><description><![CDATA[一、方法
1. instanceof
instanceof  的内部机制是通过判断对象的原型链中是不是能找到类型的 prototype。
使用 instanceof判断一个对象是否为数组，instanceof 会判断这个对象的原型链上是否会找到对应的 Array 的原型，找到返回 true，否则返回 false。
[]  instanceof Array; // true

但 instanceo...]]></description><category></category></item><item><title><![CDATA[数组-为什么普通for的性能远高于forEach的性能]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105347918</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105347918</guid><author>dandan1924</author><pubDate>Mon, 06 Apr 2020 17:47:56 +0800</pubDate><description><![CDATA[为什么普通for的性能远高于forEach的性能
forEach vs for loop网址：https://jsperf.com/testing-foreach-vs-for-loop
(有如下几种可能)
1.

for 循环没有任何额外的函数调用栈和上下文；
forEach函数签名实际上是 array.forEach(function(currentValue, index, arr), th...]]></description><category></category></item><item><title><![CDATA[JS 异步解决方案的发展历程解析]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105347884</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105347884</guid><author>dandan1924</author><pubDate>Mon, 06 Apr 2020 17:47:24 +0800</pubDate><description><![CDATA[1.回调函数（callback）
setTimeout(() =&gt; {
    // callback 函数体
}, 1000)

缺点：回调地狱，不能用try catch 捕获错误，不能return
 try {
        setTimeout(() =&gt; {
            console.log(aa)
        }, 1000)
    } catch (e...]]></description><category></category></item><item><title><![CDATA[浏览器存储 的几种方式]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105330491</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105330491</guid><author>dandan1924</author><pubDate>Mon, 06 Apr 2020 14:58:11 +0800</pubDate><description><![CDATA[浏览器存储
常见的浏览器存储主要有：
1.属于文档对象模型：documentcookie，
2.属于浏览器对象模型 localStorage，sessionStorage，indexDB
一.cookie
h5之前，存储主要用cookie，缺点是请求头上带着数据，
h5之前，存储主要用cookies，缺点是在请求头上带着数据，导致流量增加。大小限制4k。cookie也是在所有同源窗口中都是共享的，...]]></description><category></category></item><item><title><![CDATA[设置图片变成黑白色 css代码]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/105330673</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/105330673</guid><author>dandan1924</author><pubDate>Sun, 05 Apr 2020 18:06:26 +0800</pubDate><description><![CDATA[html {
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: grayscale(100%);
filter:progid:DXImageTransform.Microsoft.BasicIm...]]></description><category></category></item><item><title><![CDATA[5种this绑定全面解析]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/103253466</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/103253466</guid><author>dandan1924</author><pubDate>Tue, 26 Nov 2019 11:45:58 +0800</pubDate><description><![CDATA[5种this绑定全面解析
this的绑定规则总共有下面5种
1、默认绑定（严格/非严格模式）
2、隐式绑定
3、显式绑定
4、new绑定
5、箭头函数绑定
一.绑定规则
1.默认绑定
函数直接调用，一般发生在回调函数

独立函数调用：this指向全局对象
严格模式下，不能将全局对象用户默认绑定，this会指向undefined。在严格模式下调用函数则不受影响
setTimeout比较特殊，严格模式...]]></description><category></category></item><item><title><![CDATA[支付宝小程序input 动态改内容不生效问题]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/102783330</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/102783330</guid><author>dandan1924</author><pubDate>Mon, 28 Oct 2019 16:52:27 +0800</pubDate><description><![CDATA[axml代码如下
代码：
&lt;input type="text" onInput='bindInput' name="firstname" value="{{firstname}}" maxlength='16' placeholder-style='color:#c5c5c5' placeholder='如：SAN'&gt;&lt;/input&gt;

js代码如下
bindInput: ...]]></description><category></category></item><item><title><![CDATA[解决支付宝小程序安卓手机字体图标（iconfont）不显示问题]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/102686169</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/102686169</guid><author>dandan1924</author><pubDate>Tue, 22 Oct 2019 17:05:31 +0800</pubDate><description><![CDATA[解决支付宝小程序安卓手机字体图标（iconfont）不显示问题
问题：支付宝小程序部分安卓手机（真机）不显示字体图标，ios真机和模拟器都显示正常，如下图：

解决方法：iconfont默认下载下来的是woff2的base64，添加一个woff的base64就好了
如下图：
附赠：ttf、woff2等文件转base64的链接是：https://transfonter.org
transfonter...]]></description><category></category></item><item><title><![CDATA[微信小程序swiper前后边距的使用]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/102508893</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/102508893</guid><author>dandan1924</author><pubDate>Fri, 11 Oct 2019 20:01:16 +0800</pubDate><description><![CDATA[微信小程序swiper前后边距的使用
小程序有一个滑动视图容器swiper提供了两个属性：
（1）previous-margin：前边距，可用于露出前一项的一小部分，支持px和rpx
（2）next-margin：后边距，可用于露出后一项的一小部分，支持px和rpx
假如需要做一个效果，如下图所示，图片左右滑动，每次滑动都居中显示。


注：1.图片的宽度不能和swiper-item的宽度一致，否...]]></description><category></category></item><item><title><![CDATA[百度智能小程序添加‘分享到贴吧’功能]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/102508402</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/102508402</guid><author>dandan1924</author><pubDate>Fri, 11 Oct 2019 19:14:18 +0800</pubDate><description><![CDATA[1. 在智能小程序官网-流量配置-贴吧推广管理中，填写小程序名称，Appid, Appkey 申请开通功能使用权限
2.在自己的小程序中设置“分享到贴吧”按钮，如下图示例

3.给“分享到贴吧”按钮添加bindtap事件，如下
callTieba() { // 自定义名字即可
    let data = {
        third_app_id: 'balabala', // 历史原因，这里...]]></description><category></category></item><item><title><![CDATA[mac操作系统新建一个vue-cli项目步骤]]></title><link>https://blog.youkuaiyun.com/dandan1924/article/details/101213890</link><guid>https://blog.youkuaiyun.com/dandan1924/article/details/101213890</guid><author>dandan1924</author><pubDate>Mon, 23 Sep 2019 17:16:18 +0800</pubDate><description><![CDATA[mac操作系统新建一个vue-cli项目步骤
1.安装nodeJs（已安忽略）
2.安装淘宝镜像（根据自己的习惯，选择安或者不安，已安忽略）
终端输入：npm install -g cnpm --registry=https://registry.npm.taobao.org
3、安装webpack（已安忽略）
cnpm install webpack -g
4.安装vue-cli
sudo np...]]></description><category></category></item></channel></rss>