<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cjexe的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cjexe</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cjexe]]></copyright><item><title><![CDATA[.vue文件渲染过程&jsx在vue项目中的应用]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97248519</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97248519</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:05:04 +0800</pubDate><description><![CDATA[vue渲染过程
&lt;template&gt;
    &lt;div id="app"&gt;
        &lt;div id="cover"&gt;
            &lt;Header&gt;&lt;/Header&gt;
            &lt;Todo&gt;&lt;/Todo&gt;
            &lt;Footer&gt;&lt;/Footer&g...]]></description><category></category></item><item><title><![CDATA[vue-loader配置]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97265269</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97265269</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:04:42 +0800</pubDate><description><![CDATA[vue-loader 配置项 对于.vue文件的配置项
在build目录下 新建 vue-loader.config.js
vue-loader.config.js 配置项目
使用函数 是为了 不同环境进行使用
module.exports = (isDev) =&gt; {
	return {
		preserveWhitepace: true,
		extractCSS: true,
		cs...]]></description><category></category></item><item><title><![CDATA[webpack  vue框架代码&业务代码拆分]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97181032</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97181032</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:04:26 +0800</pubDate><description><![CDATA[vue框架代码&amp;业务代码拆分  需求分析

打包类库文件，第三方包、vue框架代码打包，这类代码稳定性比较高的
业务代码是经常更新迭代的
为了让浏览器尽可能长的时间缓存我们的静态文件，如果把类库代码和业务代码打包在一起，那么类库代码会跟着业务代码的更新而更新，而不能长时间的是浏览器里缓存，希望利用缓存，减少浏览器流量，提高用户浏览器加载速度，所以单独拆分出来进行打包

单独打包vue框架代...]]></description><category></category></item><item><title><![CDATA[vue项目 根目录下.babelrc   postcss.config.js]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97174170</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97174170</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:04:02 +0800</pubDate><description><![CDATA[npm i postcss-loader autoprefixer babel-loader babel-core

.babelrc 作用&amp;配置

babel用的配置文件
.babelrc 为了使用vue的render方法和vue支持jsx

{
  "presets": [
    "env"
  ],
  "plugins": [
    "transform-vue-jsx"
  ...]]></description><category></category></item><item><title><![CDATA[webpack配置 css单独分离打包]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97178099</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97178099</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:03:50 +0800</pubDate><description><![CDATA[Step1安装插件
npm i extract-text-webpack-plugin


webpack.config.js 配置

const ExtractPlugin = require('extract-text-webpack-plugin')

Step2 配置 区分环境


开发环境 development


正式环境 production


正式环境中 去掉style-loa...]]></description><category></category></item><item><title><![CDATA[webpack-dev-server 使用]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97135660</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97135660</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:03:19 +0800</pubDate><description><![CDATA[Step1 安装
npm i webpack-dev-server

npm i cross-env

Step2 配置
要判断下，这个webpack的配置是要同时跑在开发环境和生产环境的，所以需要一个变量区分下
package.json
加 dev
NODE_ENV=production 适用于 Mac平台上
set NODE_ENV=production 适用于win平台下
这个cross-e...]]></description><category></category></item><item><title><![CDATA[vue项目 安装eslint校验]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97285028</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97285028</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:02:49 +0800</pubDate><description><![CDATA[eslint 代码风格校验
Step 1 安装
npm i eslint eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node -D


这些包是eslint-config-standard这个包的官方文档推荐我们安装的
根目录下创建.e...]]></description><category></category></item><item><title><![CDATA[ES6项目构建]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97828853</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97828853</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:01:53 +0800</pubDate><description><![CDATA[基础架构
基础架构业务逻辑自动构建服务接口页面交互编译辅助数据接口自动刷新文件合并资源压缩
任务自动化gulp

什么是任务自动化
什么是gulp
gulp 的作用
了解如何使用gulp完成任务自动化

编译工具（babel、webpack）

什么是babel、webpack
babel的核心用法
了解webpack及webpack-stream的作用

代码实现

创建一个ES6前端工程
完成...]]></description><category></category></item><item><title><![CDATA[HTTP协议 导论]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/97806773</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/97806773</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:01:21 +0800</pubDate><description><![CDATA[HTTP code
前端缓存

客户端缓存，代理服务器缓存，还有缓存如何去验证它的可用性

HTTP重要性

前端所有的静态资源加载和数据加载都是要通过HTTP协议进行发送
价值提升

只要你是中高级的岗位，不可能不问你HTTP相关的内容，而且一般面试官要问你的时候，他不会说给你提醒，让你往深的去讲，他只会问你相关的一些知识，然后看你讲的什么。



HTTP协议 简单例子

输入URL 打开网页...]]></description><category></category></item><item><title><![CDATA[ES6作用域 let&const]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/98981364</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/98981364</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:00:33 +0800</pubDate><description><![CDATA[块作用域(即大括号内的作用域)

离开了大括号，可以理解为块作用域的生命周期结束
es6强制开启严格模式（“use strict”）
严格模式下，变量未声明则不能引用，否则报错

function test(){
	for(var i=1; i&lt;3; i++ ){
		console.log(i)//循环输出1，2
	}
	console.log(i)//3
}
test()
//1
//2...]]></description><category></category></item><item><title><![CDATA[ES6语法——Decorator]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99356392</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99356392</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 17:00:09 +0800</pubDate><description><![CDATA[Decorator
基本概念

修饰器是个函数
修改行为（扩展类的功能）
只在类中有用

基本用法

]]></description><category></category></item><item><title><![CDATA[ES6语法——Generator]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99355201</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99355201</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:59:57 +0800</pubDate><description><![CDATA[Generator
基本概念
next函数的用法
yield*的语法

]]></description><category></category></item><item><title><![CDATA[ES6语法——Iterator、for...of循环]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99353572</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99353572</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:59:44 +0800</pubDate><description><![CDATA[Iterator、for…of循环
什么是Iterator接口



Iterator的基本用法
for…of

]]></description><category></category></item><item><title><![CDATA[ES6语法——Promise]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99351140</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99351140</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:59:29 +0800</pubDate><description><![CDATA[Promise

Promise是异步编程的解决方案

什么是异步

有一个函数A，A有一个步骤，A执行完再执行B
在程序上怎么实现A执行完再执行B呢，这个步骤有两种方式，一种是回调方式，另一种事件触发的方式
Promise是区别于以上两种方式的

Promise的作用

解决异步操作问题的

Promise的基本用法
{
	//模拟es5中ajax请求
	let ajax = function(...]]></description><category></category></item><item><title><![CDATA[ES6语法——函数扩展]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99290947</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99290947</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:59:16 +0800</pubDate><description><![CDATA[函数扩展
函数新增特性

参数默认值
rest参数
扩展运算符
箭头函数
this绑定
尾调用

{
	//函数参数默认值
	//默认值后面，不能有，没有默认值的变量
	//function(x,y=123,z) 这是错误的
	//function(x,y=123,z=444) 这是可以的
	function foo(x, y = 'y的默认值'){
		console.log("默认值",x,y...]]></description><category></category></item><item><title><![CDATA[ES6语法——Proxy、Reflect]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99317660</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99317660</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:59:02 +0800</pubDate><description><![CDATA[Proxy、Reflect
Proxy和Reflect的概念
Proxy和Reflect的使用场景
Proxy （代理即拦截）

代理


{
//obj作为原始对象,原始对象存储真实数据
//通过new Proxy() 新生成一个对象，这个对象映射obj，让它在中间做一些操作
//最后用户访问的是monitor，不管用户是设置monitor还是读取monitor属性，最终通过Proxy传递给ob...]]></description><category></category></item><item><title><![CDATA[ES6语法——类]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99318558</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99318558</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:58:47 +0800</pubDate><description><![CDATA[类
类的概念

基本语法
类的继承
静态方法
静态属性
getter
setter

{
	//基本定义和生成实例
	class Parent{
		constructor(){
	
		}
	}

}


]]></description><category></category></item><item><title><![CDATA[ES6语法——数据结构]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99301839</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99301839</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:58:37 +0800</pubDate><description><![CDATA[数据结构
Set的用法

是一种集合，（可以当作数组来使用）
Set集合中的元素是不能重复的
Set定义 第一种不加参数，第二种加参数
Set集合中的元素不能重复，这个特性可以用于去重
Set实例方法 add delete clear has 还有遍历的方法

WeakSet的用法
Map的用法

Map可以和Object做对比
Object中的key必须是字符串，但是也允许Symbol数据类型作...]]></description><category></category></item><item><title><![CDATA[ES6语法——对象扩展]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99292166</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99292166</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:58:15 +0800</pubDate><description><![CDATA[对象扩展
函数新增特性

简洁表示法
属性表达式
扩展运算符
Object新增方法

{
	//简洁表示法
	let o=1;
	let k=2;
	let es5 = {
		o:o,
		k:k
	}
	let es6 = {
		o,
		k
	}
	console.log(es5,es6)//{o:1,k:2} {o:1,k:2}
	let es5_method={
		hello: fu...]]></description><category></category></item><item><title><![CDATA[ES6语法——Symbol]]></title><link>https://blog.youkuaiyun.com/cjexe/article/details/99293508</link><guid>https://blog.youkuaiyun.com/cjexe/article/details/99293508</guid><author>cjexe</author><pubDate>Sun, 18 Aug 2019 16:57:57 +0800</pubDate><description><![CDATA[Symbol
es6新增的数据类型
Symbol的概念

这种数据类型提供一个独一无二的值

Symbol的作用
{
	//Symbol 声明
	//生成独一无二的值
	let a1 = Symbol();
	let a2 = Symbol();
	console.log(a1===a2);//false
	//使用同一个key值（a3），所以可以相等
	let a3 = Symbol.for('...]]></description><category></category></item></channel></rss>