<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cjvalue的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cjvalue</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cjvalue]]></copyright><item><title><![CDATA[对前端工程化的理解]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/116035406</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/116035406</guid><author>cjvalue</author><pubDate>Thu, 22 Apr 2021 23:45:22 +0800</pubDate><description><![CDATA[对前端工程化的理解
ps：以理解原理为主
1、以前为什么没有前端工程化的问题
在javascript被创造后很长一段时间，js或者说前端东西（js、css、html文件，各种图片资源等），都是依附于后端页面（例如：jsp页面、.net页面），后端页面有一个特点就是，没有前端路由，这意味着一个url对于一个具体的后端页面，这就是以前所谓的多页面应用。
多页面的优点在于一个页面的静态资源都是比较少量的（相对于单页面应用），纯手工就可以实现较方便的控制，这时对多页面应用做工程化控制是不实用的，也没有这方面的需求！]]></description><category></category></item><item><title><![CDATA[ERROR TypeError: Cannot read property ‘upgrade‘ of undefined]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/113994163</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/113994163</guid><author>cjvalue</author><pubDate>Tue, 23 Feb 2021 16:17:57 +0800</pubDate><description><![CDATA[ERROR  TypeError: Cannot read property ‘upgrade’ of undefined
vue项目中遇到ERROR  TypeError: Cannot read property ‘upgrade’ of undefined问题：
1、是项目配置文件（vue.config.js）中使用了由于.env或类似文件中没有定义的变量导致
.env文件
NODE_ENV=production
VUE_APP_PREVIEW=false

vue.config.js文件
// ..]]></description><category></category></item><item><title><![CDATA[vue按需加载打包后的文件（其中之一）]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/113185945</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/113185945</guid><author>cjvalue</author><pubDate>Tue, 26 Jan 2021 17:55:43 +0800</pubDate><description><![CDATA[ERROR  TypeError: Cannot read property ‘upgrade’ of undefined
vue项目中遇到ERROR  TypeError: Cannot read property ‘upgrade’ of undefined问题：
1、是项目配置文件（vue.config.js）中使用了由于.env或类似文件中没有定义的变量导致
.env文件
NODE_ENV=production
VUE_APP_PREVIEW=false

vue.config.js文件
// ..]]></description><category></category></item><item><title><![CDATA[vscode eslint格式化配置问题]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/109215000</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/109215000</guid><author>cjvalue</author><pubDate>Thu, 22 Oct 2020 09:26:16 +0800</pubDate><description><![CDATA[在使用vscode编辑代码保存后，自动格式化代码。
主要配置如下，但可能有其他插件会影响格式化效果，建议谨慎安装相关格式化插件：
{
  // vscode默认启用了根据文件类型自动设置tabsize的选项
  "editor.detectIndentation": false,
  // 重新设定tabsize
  "editor.tabSize": 2,
  // #值设置为true时，每次保存的时候自动格式化；值设置为false时，代码格式化请按shift+alt+F
  "editor.format]]></description><category></category></item><item><title><![CDATA[webpack4打包优化]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/107861965</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/107861965</guid><author>cjvalue</author><pubDate>Fri, 07 Aug 2020 14:52:13 +0800</pubDate><description><![CDATA[layout: post
title: webpack4打包优化
categories: webpack
tags:
webpack4打包优化
针对vue cli3.0+，webpack4.0+，nodejs10.0+ 这几个版本打包优化
一、量化、分析
speed-measure-webpack-plugin 时间分析

测量出在你的构建过程中，每一个 Loader 和 Plugin 的执行时长
而它的使用方法也同样简单，如下方示例代码所示，只需要在你导出 Webpack 配置时，为你的原始配置包一层 .]]></description><category></category></item><item><title><![CDATA[封装wx.request请求]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/103690033</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/103690033</guid><author>cjvalue</author><pubDate>Tue, 24 Dec 2019 21:24:10 +0800</pubDate><description><![CDATA[封装wx.request请求
&lt;!--http.js--&gt;

import url from './url.js';

//iview微信小程序UI框架组件
const { $Toast } = require('../dist/base/index');

//请求的合法的接口地址
const baseUrl = url.baseUrl;

//项目初始化的时候，初始化storage...]]></description><category></category></item><item><title><![CDATA[ES6+版本新特性]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/103180652</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/103180652</guid><author>cjvalue</author><pubDate>Thu, 21 Nov 2019 13:49:45 +0800</pubDate><description><![CDATA[添加链接描述

]]></description><category></category></item><item><title><![CDATA[微信小程序中wxml事件绑定传参]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/103135133</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/103135133</guid><author>cjvalue</author><pubDate>Tue, 19 Nov 2019 08:56:22 +0800</pubDate><description><![CDATA[小程序中wxml事件绑定传参
在wxml中不能在bindtap中直接绑定事件时直接传入参数，html常见的操作例如：
&lt;!--wxml--&gt;
&lt;view bindtap="selectNav(2)"&gt;2&lt;/view&gt;

&lt;!--js--&gt;
selectNav: function(num){
    console.log(num)
}


会导致：V...]]></description><category></category></item><item><title><![CDATA[h5混合开发加载优化问题]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/102669763</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/102669763</guid><author>cjvalue</author><pubDate>Mon, 21 Oct 2019 19:07:56 +0800</pubDate><description><![CDATA[1、问题描述
在项目中，存在微信公众号（即：H5页面）以及安卓和iOS等两款app，在app中调用了H5页面部分业务代码和相关设备的详情页面，但在app中设置WebView缓存的时候，发现切换页面的时候数据没有及时更新，导致app放弃了webview缓存，其结果就是每次从app进入H5都会加载H5相关资源，导致加载缓慢。
WebView的四种缓存机制：
// LOAD_CACHE_ONLY: 不使...]]></description><category></category></item><item><title><![CDATA[关于webpack dll优化打包问题]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/100083323</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/100083323</guid><author>cjvalue</author><pubDate>Mon, 26 Aug 2019 18:17:57 +0800</pubDate><description><![CDATA[1、为什么要使用dll
在文件相对较庞大时，webpack的构建速度是非常慢的，在通常的打包过程中，你所引用的诸如：jquery、bootstrap、react、react-router、redux、antd、vue、vue-router、vuex 等等众多库也会被打包进 bundle 文件中。由于这些库的内容基本不会发生改变，每次打包加入它们无疑是一种巨大的性能浪费，而dll则是在预先将第三方库...]]></description><category></category></item><item><title><![CDATA[关于版本迭代后用户停留在之前版本页面，导致某些功能无法使用的解决方案]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/100022376</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/100022376</guid><author>cjvalue</author><pubDate>Thu, 22 Aug 2019 19:08:58 +0800</pubDate><description><![CDATA[1、问题发现
某天发布测试版本后，测试小伙伴，反馈部分按钮点击后没有相关的交互动作，需要刷新后才能正常使用，经常在刚发版本后出现。刚收到问题的时候，第一反应就是缓存问题造成的，那就刷新一下就好了，但经常在发布版本后出现，无论对测试和用户都不能接受该处理方式，所以来研究一下
2、问题分析
项目采用vue(全家桶)+element-ui+webpack+axios搭建，使用vue-router的懒加载...]]></description><category></category></item><item><title><![CDATA[关于Web Worker应用]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/97921396</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/97921396</guid><author>cjvalue</author><pubDate>Wed, 31 Jul 2019 15:15:51 +0800</pubDate><description><![CDATA[1、Web Worker介绍
Web Worker 的作用，就是为 JavaScript 创造多线程环境，允许主线程创建 Worker 线程，将一些任务分配给后者运行。在主线程运行的同时，Worker 线程在后台运行，两者互不干扰。等到 Worker 线程完成计算任务，再把结果返回给主线程。这样的好处是，一些计算密集型或高延迟的任务，被 Worker 线程负担了，主线程（通常负责 UI 交互）就会...]]></description><category></category></item><item><title><![CDATA[Echarts + 中国地图+事件报警撒点]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/95487342</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/95487342</guid><author>cjvalue</author><pubDate>Thu, 11 Jul 2019 16:09:44 +0800</pubDate><description><![CDATA[1、需要引入Echarts和China.js
整个地图是给予Echarts构建，所以必须引入，至于china.js，则是中国地图的geoJson数据，并在该js中注册相关的地图，大致代码如下：
(function (root, factory) {
    if (typeof define === 'function' &amp;&amp; define.amd) {
        // AM...]]></description><category></category></item><item><title><![CDATA[关于vue keep-alive组件与activated和deactivated钩子函数的应用]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/95348155</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/95348155</guid><author>cjvalue</author><pubDate>Wed, 10 Jul 2019 16:25:58 +0800</pubDate><description><![CDATA[1、通过keep-alive和router-view实现路由缓存，具体代码如下：
在app.vue：
    &lt;router-view v-if="!$route.meta.keepAlive"/&gt;
    &lt;keep-alive&gt;
      &lt;router-view v-if="$route.meta.keepAlive"/&gt;
    &lt;/keep-a...]]></description><category></category></item><item><title><![CDATA[关于安卓和ios图片上传问题（base64、bolb、file）]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/93486752</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/93486752</guid><author>cjvalue</author><pubDate>Mon, 24 Jun 2019 14:57:18 +0800</pubDate><description><![CDATA[关于安卓和ios图片上传问题（base64、bolb、file）
1、安卓获取图片的问题 base64开头为data:img
安卓获取的base64格式图片中含有"\n"字符，其中\n字符会导致base64转bolb文件失败，具体表现为window.atob(base64)，报参数错误，错误信息：ailed to execute ‘atob’ on ‘window’: the string to ...]]></description><category></category></item><item><title><![CDATA[javascript线程、消息队列、事件循环]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/90176440</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/90176440</guid><author>cjvalue</author><pubDate>Mon, 13 May 2019 16:53:17 +0800</pubDate><description><![CDATA[javascript线程
单线程模型指的是，JavaScript只在一个线程上运行。也就是说，JavaScript同时只能执行一个任务，其他任务都必须在后面排队等待。
注意，JavaScript只在一个线程上运行，不代表JavaScript引擎只有一个线程。事实上，JavaScript引擎有多个线程，单个脚本只能在一个线程上运行，其他线程都是在后台配合。
JavaScript之所以采用单线程，而不...]]></description><category></category></item><item><title><![CDATA[vue路由缓存问题及混合开发路由控制问题]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/89924572</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/89924572</guid><author>cjvalue</author><pubDate>Tue, 07 May 2019 16:54:43 +0800</pubDate><description><![CDATA[问题描述（vue）：
1、在移动端项目中，使用了vux框架，在客户界面有三个分类，包括经销商、企业、家庭用户，三个分类均可下拉滚动加载操作，点击分类即切换查询条件，当我们切换到经销商，滚动加载到下一页后，点击某个经销商，跳转到某个界面后，点击返回，发现该客户界面被刷新了，用户无法返回点击某个经销商之前的数据状态。
2、移动端为微信公众号项目，需要为安卓和iOS提供部分设备详情界面，调用方式为: h...]]></description><category></category></item><item><title><![CDATA[js数组循环性能问题]]></title><link>https://blog.youkuaiyun.com/cjvalue/article/details/89567324</link><guid>https://blog.youkuaiyun.com/cjvalue/article/details/89567324</guid><author>cjvalue</author><pubDate>Fri, 26 Apr 2019 17:40:01 +0800</pubDate><description><![CDATA[js数组循环性能问题
1、研究循环方法有for、forEach、for in、forof、map。
2、数据：
let arr = [1,2,3];
arr[100000] = 100000;
4、公用方法提取
//获取当前时间，并将其转为时间戳
const getTimeFn =()=&gt;{
            return (new Date()).getTime();
       ...]]></description><category></category></item></channel></rss>