<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[starleejay的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/starleejay</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; starleejay]]></copyright><item><title><![CDATA[Flutter初次运行时，Gradle下载问题]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/107762851</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/107762851</guid><author>starleejay</author><pubDate>Mon, 03 Aug 2020 14:49:25 +0800</pubDate><description><![CDATA[问题描述：
问题一：运行时长时间出现： Running Gradle task 'assembleDebug'
问题二：Exception in thread "main" java.lang.RuntimeException: Timeout of 120000 reached waiting for exclusive access to file: C:\Users\xx\.gradle\wrapper\dists\gradle-x.x.x-all\9fahxiiecdb76a5g3aw9oi8rv\]]></description><category></category></item><item><title><![CDATA[小程序 template 模版使用方法]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/89235730</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/89235730</guid><author>starleejay</author><pubDate>Fri, 12 Apr 2019 13:59:31 +0800</pubDate><description><![CDATA[小程序开发语言虽然只能运行在微信小程序中， 但是它的设计同样遵循了主流前端框架的主要特征——组件化，在小程序中组件化的实现有两种方式: template 模版 和 Component 组件。 这两种方式分别适用于不同的场景。

template 模版 主要用于展示，模版中不涉及事件处理， 需要处理的事件逻辑放在调用模版的页面中。 一个 template 模版 只包含 wxml wxss 文件。
C...]]></description><category></category></item><item><title><![CDATA[小程序获取用户位置并转化成真实描述文字]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/89213002</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/89213002</guid><author>starleejay</author><pubDate>Thu, 11 Apr 2019 16:02:03 +0800</pubDate><description><![CDATA[获取用户位置并转化成真实描述文字设置用户授权获取经纬度信息转化经纬度信息为 `国家 省份 市`
**解决问题： **


在小程序中获取用户的信息， 使用 wx.getLocation API, 在使用这个 API 之前需要首先设置 用户授权.


用户有可能在进入小程序的时候关闭了获取位置的权限， 当需要获取位置的时候要重新判断是否拥有权限。 如果没有权限需要再次提醒用户授权.


wx.get...]]></description><category></category></item><item><title><![CDATA[git pull 出现的 ERROR: Permission to XXX.git (在本地设置一个或者多个id_rsa 来连接 github 仓库并实现 git push / git pull)]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/84849830</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/84849830</guid><author>starleejay</author><pubDate>Thu, 06 Dec 2018 14:24:10 +0800</pubDate><description><![CDATA[git pull 出现的 ERROR: Permission to XXX.git（在本地设置一个或者多个id_rsa 来连接 github 仓库并实现 git push / git pull）
场景一： 本地只需要一个 ssh id_rsa 来连接 GitHub仓库
现在有一个自己的 github 仓库 git@github.com:CheyenneLee/webpack-demo.git, 需...]]></description><category></category></item><item><title><![CDATA[vue 解决兄弟组件、跨组件深层次的通信问题]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/83660494</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/83660494</guid><author>starleejay</author><pubDate>Fri, 02 Nov 2018 19:43:54 +0800</pubDate><description><![CDATA[兄弟组件之间的通信同样是在项目中经常会遇到的组件间的通信问题之一, 这种问题的最根本方法就是： 把兄弟组件内部的变量提升到一个中央仓库。
借助父级组件链式交互
使子组件1 通过 $emit 通知父级, 父级再通过响应 子组件1 的事件去触发子组件2的事件，这样的链式操作，在子组件不多的时候，但是一个不错的解决方法
子组件1
&amp;lt;template&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;l...]]></description><category></category></item><item><title><![CDATA[解决深层次组件间的通信 $attrs, $listeners]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/83658277</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/83658277</guid><author>starleejay</author><pubDate>Fri, 02 Nov 2018 17:00:32 +0800</pubDate><description><![CDATA[inheritAttrs
在谈及深层次组件通信之前先说一下 inheritAttrs, 这个属性在官网中是这样解释的：

默认情况下父作用域的不被认作 props 的特性绑定将会 ‘回退’ 且作为普通的 HTML 特性应用在子组件的跟元素上。 当撰写包裹一个目标元素或者另一个组件的组件时，这可能不会总是符合预期行为。 通过设置 inheritAttrs 为 false, 这些默认行为将会被去掉。 ...]]></description><category></category></item><item><title><![CDATA[v-model 解析 和 自定义 v-model]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/83654491</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/83654491</guid><author>starleejay</author><pubDate>Fri, 02 Nov 2018 14:15:38 +0800</pubDate><description><![CDATA[$emmit  和 $v-on
vue 组件之间数据绑定是基于单项绑定的，想要父子组件之间的数据和行为的交互要使用 $emit和 $v-on。
&amp;amp;lt;!-- child component --&amp;amp;gt;

&amp;amp;lt;template&amp;amp;gt; 
    &amp;amp;lt;dev @click='handleClik'&amp;amp;gt; {{value}} &amp;amp;lt;/dev&amp;amp;gt;
&amp;amp;lt]]></description><category></category></item><item><title><![CDATA[使用 Array.includes  Array.every  Array.some  处理多重循环条件]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/83218261</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/83218261</guid><author>starleejay</author><pubDate>Sat, 20 Oct 2018 23:49:52 +0800</pubDate><description><![CDATA[Array.includes
一个最常见的循环例子：
function demo(fruit) {
	if(fruit === 'apple' || fruit === 'strawberry'){
		console.log('red fruit')
	}
}

这是一段没有任何问题的内部含有条件判断的函数，然而如果我们有很多种类的水果需要匹配更多的水果颜色，这是我们如果还按照传统的条件判断，就...]]></description><category></category></item><item><title><![CDATA[JS 中实例必须使用 new 关键字生成的写法]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/82974030</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/82974030</guid><author>starleejay</author><pubDate>Mon, 08 Oct 2018 21:23:44 +0800</pubDate><description><![CDATA[this instanceof xx
在 JS 中一个实例对象的创建必须使用 new 操作符。但是限于 JS  的语法特征， 实际上 构造函数  同样可以像普通函数那样直接执行，这就使用了 函数作为构造函数的意义，为了避免这种情况的发生，很多 JS 库使用下面的这种方式：
function Person () {
	if(!this instanceof Person){
		console.wa...]]></description><category></category></item><item><title><![CDATA[一些 JS Function 类型 有趣的知识]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/81983313</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/81983313</guid><author>starleejay</author><pubDate>Thu, 23 Aug 2018 16:28:12 +0800</pubDate><description><![CDATA[一些 JS Function 类型 有趣的知识



一些 JS Function 类型 有趣的知识
函数声明 VS 函数式表达
函数的内部属性 arguments &amp;amp;&amp;amp; this
arguments的 callee 属性
函数内部的 this
函数内部的 caller


函数属性与方法
lenght 属性
prototype 属性
apply() 方法 和 call() 方法
...]]></description><category></category></item><item><title><![CDATA[vue 双向数据绑定的终极实现 -- .sync]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/81487124</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/81487124</guid><author>starleejay</author><pubDate>Tue, 07 Aug 2018 19:35:16 +0800</pubDate><description><![CDATA[sync 修饰符

在 vue 项目中，父子组件之间的数据通信为：


父级组件改变子组件数据：




// 父组件
&amp;amp;lt;father :status='statusValue'&amp;amp;gt;

//子组件
...
&amp;amp;lt;div&amp;amp;gt;{{status}}&amp;amp;lt;/div&amp;amp;gt;
... 
props:['status']


子组件改变父组件数据：




//子组件
...
&amp;amp;lt;div ]]></description><category></category></item><item><title><![CDATA[Vue 数组和对象更新后页面 DOM (二)]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/81194303</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/81194303</guid><author>starleejay</author><pubDate>Tue, 24 Jul 2018 23:17:22 +0800</pubDate><description><![CDATA[上篇文章Vue 数组和对象更新后页面 DOM 不更新问题的解决方法。能够解决很多页面数据响应的问题，但是最近在项目中发现在某些情况下上篇文章的解决方式并不是针对任何问题的。

假设数据结构是下面的情况：



polist:{
    ...,
    list:{
        itemlist:[
            {a:1},
            {a:2}
        ]
...]]></description><category></category></item><item><title><![CDATA[vue 项目 -- 从 vue-cli 开始]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/81193757</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/81193757</guid><author>starleejay</author><pubDate>Tue, 24 Jul 2018 22:34:00 +0800</pubDate><description><![CDATA[ 从 vue-cli 开始

搭建一个 vue 项目最简单的方式就是使用官方的脚手架工具，他提供了现代前端工作流的构建设置，只需要几分钟时间就可以运行带有 热更新 Eslint 打包 功能的项目。

vue-cli 的安装比较简单，基本上跟着官网的步骤就可以



安装

前提条件： Node.js 版本在 6.x 以上， npm 版本在 3 以上， 并且要已经安装了 git



npm ins...]]></description><category></category></item><item><title><![CDATA[vue 项目目录结构]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/81193741</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/81193741</guid><author>starleejay</author><pubDate>Tue, 24 Jul 2018 22:32:34 +0800</pubDate><description><![CDATA[vue 项目目录结构

运行 vue-cli 项目之后，让我们来看一下整个项目的结构





build

项目的打包构建目录，里面的文件是关于整个 vue 项目用什么方式打包，不同的项目环境打包方式怎么区别，什么文件该使用什么 vue-loader 插件， 打包时需要使用哪些 webpack 的插件，插件的配置等等。 vue 项目中的 webpack



config

关于项目配置的目...]]></description><category></category></item><item><title><![CDATA[js 强制参数]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/80906030</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/80906030</guid><author>starleejay</author><pubDate>Tue, 03 Jul 2018 23:52:00 +0800</pubDate><description><![CDATA[js 强制参数

es6 提供了给函数的参数添加默认值的方法：

let fn = (a=1,b=2) =&amp;amp;amp;gt; {}


利用这种方法，可以设置函数的参数为强制参数

//设置跑出异常函数
const require = () =&amp;amp;amp;gt; (throw new Errror('Missing Parameter!'))


//使用解析赋值的原理，当a，b没有设置值的情况下，默认赋值为requ...]]></description><category></category></item><item><title><![CDATA[vue 项目中使用 Loading 组件]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/80738296</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/80738296</guid><author>starleejay</author><pubDate>Tue, 19 Jun 2018 19:53:18 +0800</pubDate><description><![CDATA[当在vue项目中请求后台接口时，常常会使用 loding 过渡数据的加载时间。 
如果 loading 作为一个全局的加载状态，应该写在项目中的App.vue中

&amp;lt;template&amp;gt;
    &amp;lt;div id=&quot;app&quot;&amp;gt;
        &amp;lt;router-view&amp;gt;&amp;lt;/router-view&amp;gt;
        &amp;lt;loading v-if='LO...]]></description><category></category></item><item><title><![CDATA[Vue 数组和对象更新后页面 DOM 不更新问题的解决方法。]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/80714971</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/80714971</guid><author>starleejay</author><pubDate>Sat, 16 Jun 2018 20:11:14 +0800</pubDate><description><![CDATA[Vue 数组和对象更新后页面 DOM 不更新问题的解决方法。

* Vue 监听不到深层次的对象属性或者数组值的改变。*



数组更改检测注意事项

由于JavaScript的限制，Vue不能检测以下变动的数组：


当使用索引直接改变或者设置一个项时，例如：vm.items[index] = newvalue
当修改数组的长度时，例如：vm.items.lenght = newValue

l...]]></description><category></category></item><item><title><![CDATA[Ubuntu 16.04 下安装 MySQL 并实现远程连接 的过程]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/80060960</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/80060960</guid><author>starleejay</author><pubDate>Tue, 24 Apr 2018 10:34:22 +0800</pubDate><description><![CDATA[Ubuntu 16.04 下安装 MySQL 并实现远程连接 的过程

第一步：安装MySQL服务端、客户端、开发接口

sudo apt-get install mysql-server
sudo apt install mysql-client
sudo apt install libmysqlclient-dev


安装完毕后，通过下面的命令测试是否安装成功

sudo netstat -...]]></description><category></category></item><item><title><![CDATA[.gitignore 文件失效]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/79909079</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/79909079</guid><author>starleejay</author><pubDate>Thu, 12 Apr 2018 10:36:33 +0800</pubDate><description><![CDATA[在项目开发中过程中，有时候想要把某些目录添加到.gitignore规则中，但是发现添加后发现并未生效，忽略的文件并未生效。

原因是.gitignore 文件只能忽略那些原来没有被track(跟踪/记录)的文件，如果某些文件已经被纳入了版本管理中，则修改.gitignore文件是没有效果的。

解决方法就是先把本地缓存删除（改变成未track状态），然后在提交。

git rm -r --cach...]]></description><category></category></item><item><title><![CDATA[Ubuntu上安装 MongoDB]]></title><link>https://blog.youkuaiyun.com/starleejay/article/details/79884746</link><guid>https://blog.youkuaiyun.com/starleejay/article/details/79884746</guid><author>starleejay</author><pubDate>Tue, 10 Apr 2018 17:38:46 +0800</pubDate><description><![CDATA[Ubuntu上安装 MongoDB



步骤一：导入包管理系统使用的公钥

Ubuntu包管理工具（dpkg和apt）通过要求分销商使用GPG密钥来签署包，确保包的一致性和真实性。发布以下命令来导入MongoDB公共GPG密钥。

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059E...]]></description><category></category></item></channel></rss>