辅助开发工具和调试
安装 sourceTree
打开企业版链接,先下载,然后找到C:\Program Files (x86)\Atlassian\Sourcetree目录安装
在查询文件里输入 %LocalAppData%\Atlassian\SourceTree\accounts.json,编辑成以下内容:
123456789101112131415161718192021222324[ { "$id": "1", "$type": "SourceTree.Api.Host.Identity.Model.IdentityAccount, SourceTree.Api.Host.Identity", "Authenticate": true, "HostInstance": { "$id": "2", "$type": "SourceTree.Host.Atlassianaccount.AtlassianAccountInstance, SourceTree.Host.AtlassianAccount", "Host": ...
前端进阶-大杂烩-1
本周涉及内容
vue 插槽
函数柯里化
装饰者模式 && 装饰器
函数式编程 && 命令式编程
proxy
css加速
cdn缓存
vue插槽slot函数柯里化
函数参数固定12345678910111213141516const curry2 = (fn) => { return function judge(...args) { if (args.length === fn.length) { return fn(...args) } else { return (...arg) => { return judge(...args, ...arg) } } }}const add2 = (a,b,c) => a + b + c;const curryAdd2 = curry2(add2)console.log(curryAdd2(1)(2)(3)) // 6cons ...
基础: 在学es6之class
classclass是一个语法糖,其底层还是通过 构造函数 去创建的。新的class写法只是让对象原型的写法更加清晰、更像面向对象编程的语法而已。
es5实现123456789function Point(x, y) { this.x = x; this.y = y;}Point.prototype.toString = function () { return '(' + this.x + ', ' + this.y + ')';};var p = new Point(1, 2);
es6实现12345678910class Point { constructor(x, y) { this.x = x; this.y = y; } toString () { return '(' + this.x + ', ' + this.y + ')'; }}var p = new Point(1, 2);
上面代码定义了一个“类”,可以看到里面有一个const ...
基础-基于webpack搭建vue项目
学习如何用webpack搭建项目,成为模板,为后面的脚手架做准备,需要学习的有
webpack
node
学会手写自己的loader
手写plugin
webpack的异步加载如何实现
webpack的分包策略
什么是webpack?官网是这么描述的:
本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。
先理解四个核心概念:
入口(entry)
输出(output)
加载器(loader)
插件(plugins)
webpack搭建vue项目即webpack搭建vue
本地项目涉及的webpack版本webpack版本众多,有时会被这些琐粹的玩意搞得头晕
123456{ "webpack": "^4.41.2", "webpack-cli": "^3.3.9", "webpack-dev-server": "^ ...
vscode插件开发和学习
vsCode插件实现
参考链接
手摸手带你从零实现VS Code基金插件
随笔: 秋天来了
湖人夺冠
看到上次更博是0718,一晃,三个月,从盛夏到深秋,难得周末清闲,好久没有静下心来写点东西了(虽然也不知道自己在写啥, hhhh)。最近因为练字发了几条抖音有点着迷这玩意,果断卸载,还是得聚焦现实主要任务,有些东西,随着时间的流逝就很难追回来。最主要的任务是啥呢,说实话,我自己也有点蒙,最近都在忙啥呢,我自己也不知道忙啥。
看看自己手机里收藏的微信好文,是否自己都仔细阅读过了?是否读完都明白了?明白了是否自己都能在现在的项目中熟练运用?
今年再不做打算的话,程序员这一站就到头了,还得想想自己的后路。30岁的中年烦恼,提前准备,提前应对,35岁之后,我能做啥?
自己得学习起来,1.搭建脚手架 2.vscode插件 3.webpack(从0开始配置项目) 4.ts使用 5.算法,上面这几块得干起来,少看手机,多思考思考
基础知识还得继续夯实,主要是继承/Promise
拉勾教育上也得看起来
现在所处的项目改造,减少代码的重复
vue: 常用技巧2
hook用法源码涉及hook的较多,
123456789101112131415function callHook (vm, hook) { // #7573 disable dep collection when invoking lifecycle hooks pushTarget(); var handlers = vm.$options[hook]; var info = hook + " hook"; if (handlers) { for (var i = 0, j = handlers.length; i < j; i++) { invokeWithErrorHandling(handlers[i], vm, null, vm, info); } } if (vm._hasHookEvent) { vm.$emit('hook:' + hook); } po ...
vue: 常用技巧1
如果存在组件之间层级大于2层,中间需要一个过渡层的时候,属性和事件的上传下达越简洁越好,重点就是采用vue里的$atts 和事件 $listeners,先打印看看这两者是什么玩意,
12$attrs: object,$listeners: object
两者都是绑定在组件里的,且是对象类型,所以在组件阔以之间用this.$attrs.info去获取祖父组件传来的info信息。
以下有三个组件,三者之间都是相关有联系的,阔以称之为 祖父组件、父组件以及子组件。伪代码如下
123456789101112131415161718192021// grandParent.vue<template> <div class="home"> <Parent :childMsg='childMsg' @triggerClickChild='triggerClickChild' info='父组件' ...
前端进阶: 搭建脚手架
综述全局安装,cpp-cli-test脚手架,shell执行npm i -g cpp-cli-test即可,cpp即被注册到全局bin里,本脚手架已发布到npm上,npm包地址 cpp-cli-test
删除文件夹cpp rm <dir> 删除文件夹命令
升级模板cpp upgrade
设置自己镜像cpp mirror
这里的镜像地址,也就是模板的下载地址,比如: https://github.com/mengdu/vue-element-admin-tpl/archive/master.zip以zip为结尾的文件,执行命令行 cpp mirror https://github.com/mengdu/vue-element-admin-tpl/archive/master.zip就是把该模板下载下来.
需要先将自己的镜像写入本地的config.json文件中,代码逻辑就是根据输入的镜像写入到config.json。写入的时候判断有没有config.json,如果没有则初始化生成config.json,有的话,则先读取,然后设置
12345// 读取 config.json ...
前端进阶: webpack 配置项output
output配置项123456789module.exports = { entry: path.resolve(__dirname, '../src/component/index.js'), output: { path: path.resolve(__dirname, '../dist'), // 输出的文件位置 filename: 'main.js', // 输出的文件名 libraryTarget: 'umd', // 输出格式 library: 'cppVue' // 模块名称 },}
按不同的模块方式生成
123commonjs/commonjs2: 将你的library暴露为CommonJS模块amd: 将你的library暴露为amd模块umd: 将你的library暴露为所有的模块定义下都可运行的方式
注意:commonjs和commonjs2几乎相同,只不过commonjs只包含exports,而commonjs2还包含module.exports,所以直接使用commonjs2即可 ...