Day203,前端开发软件工具

45 阅读4分钟

最后前端到底应该怎么学才好?

如果你打算靠自己摸索自学,那么你首先要了解学习前端的基本大纲,这是你将要学习的主要内容,理解以及掌握好这些内容,便可以找到一份初级的前端开发工作。你还需要有一套完整的前端学习教程,作为初学者最好的方式就是看视频教程学习,初学者容易理解接受。

不要选择买书学习,这样的方式没有几个人能学会,基本都是看不下去书,也看不懂书。如果喜欢看书的学弟,可以买一些经典的书籍作为辅助即可,主要还是以看教程为主。每天抽出固定几个小时学习,做好长期学习的准备。学习编程并不是每天光看视频,你学习编程最重要的目的是为了编写软件产品,提供给大众使用,所以用手写出代码实现功能才是我们要做的事情。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述 开源分享:docs.qq.com/doc/DSmRnRG… console.log(b);

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgIiNs8Z-1614263558250)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210224194608004.png)]


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8SKgayPY-1614263558251)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210224194839460.png)]


const声明常量(只读变量)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FNkBx5uc-1614263558253)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210224195542460.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fqsx9OqK-1614263558254)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210224195622403.png)]


解构赋值

创建 解构赋值.html

解构赋值是对赋值运算符的扩展。

他是一种针对数组或者对象进行模式匹配,然后对其中的变量进行赋值。

在代码书写上简洁且易读,语义更加清晰明了;也方便了复杂对象中数据字段获取

let user = {name:'achang',age:18} //传统 let name1 = user.name; let age1 = user.age; console.log(name1,age1); //ES6 let {name,age} = user //注意:结构的变量必须是user中的属性 console.log(name,age);

模板字符串

创建 模板字符串.html

模板字符串相当于加强版的字符串,用反引号 `,除了作为普通字符串,还可以用来定义多行字符串,还可以在字符串中加入变量和表达式。

以下操作,都是使用``反引号`完成


多行字符串

字符串插入变量和表达式

字符串中调用函数


声明对象简写


定义方法简写


对象拓展运算符

拓展运算符(…)用于取出参数对象所有可遍历属性然后拷贝到当前对象。

拷贝对象

合并对象


箭头函数

箭头函数提供了一种更加简洁的函数书写方式。基本语法是:

参数 => 函数体

// 传统

var f1 = function(a){

return a

}

console.log(f1(1))

// ES6

var f2 = a => a

console.log(f2(1))

// 当箭头函数没有参数或者有多个参数,要用 () 括起来。

// 当箭头函数函数体有多行语句,用 {} 包裹起来,表示代码块,

// 当只有一行语句,并且需要返回结果时,可以省略 {} , 结果会自动返回。

var f3 = (a,b) => {

let result = a+b

return result

}

console.log(f3(6,2)) // 8

// 前面代码相当于:

var f4 = (a,b) => a+b

箭头函数多用于匿名函数的定义


四、Vue

===============================================================

参考阿昌的博客:

blog.csdn.net/qq\_4328446…


五、Axios

=================================================================

参考阿昌的博客:

blog.csdn.net/qq\_4328446…


六、ElementUI

=====================================================================

参考阿昌的博客:

blog.csdn.net/qq\_4328446…


七、Nodejs

==================================================================

1、简介


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yq2JlqVD-1614263558255)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225121635632.png)]

2、安装


官网:nodejs.org/en/

中文网:nodejs.cn/

LTS:长期支持版本

Current:最新版

查看版本

node -v

3、快速入门


1、创建文件夹nodejs

2、控制台程序

创建 01-控制台程序.js

console.log('Hello Node.js')

打开命令行终端

进入到程序所在的目录,输入

node 01-控制台程序.js

浏览器的内核包括两部分核心:

  • DOM渲染引擎;

  • js解析器(js引擎)

  • js运行在浏览器中的内核中的js引擎内部

Node.js是脱离浏览器环境运行的JavaScript程序,基于V8 引擎(Chrome 的 JavaScript的引擎)

简单来说,node底层就是浏览器底层的那一套东西,所以可以脱离浏览器运行


3、服务器端应用开发(了解)

创建 02-server-app.js

const http = require('http');

http.createServer(function (request, response) {

// 发送 HTTP 头部

// HTTP 状态值: 200 : OK

// 内容类型: text/plain

response.writeHead(200, {'Content-Type': 'text/plain'});

// 发送响应数据 "Hello World"

response.end('Hello Server');

}).listen(8888);

// 终端打印如下信息

console.log('http://127.0.0.1:8888/');

运行服务器程序

node 02-server-app.js

服务器启动成功后,在浏览器中输入:http://localhost:8888/ 查看webserver成功运行,并输出html页面

停止服务:ctrl + c


八、NPM包管理器

===================================================================

1、简介


NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于前端的Maven 。


NPM工具的安装位置

Node.js默认安装的npm包和工具的位置:Node.js目录\node_modules

  • 在这个目录下你可以看见 npm目录,npm本身就是被NPM包管理器管理的一个工具,说明Node.js已经集成了npm工具

#在命令提示符输入 npm -v 可查看当前npm版本

npm -v

2、使用npm管理项目


1)、创建文件夹npm

2)、项目初始化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HsngIBnh-1614263558257)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225133022822.png)]

#建立一个空文件夹,在命令提示符进入该文件夹 执行命令初始化

npm init

#按照提示输入相关信息,如果是用默认值则直接回车即可。

#name: 项目名称

#version: 项目版本号

#description: 项目描述

#keywords: {Array}关键词,便于用户搜索到我们的项目

#最后会生成package.json文件,这个是包的配置文件,相当于maven的pom.xml

#我们之后也可以根据需要进行修改

#如果想直接生成 package.json 文件,那么可以使用命令

npm init -y

文件夹下会生成package.json。类似与java项目中的pom.xml

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xcFmA6ks-1614263558258)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225132933634.png)]


3)、修改npm镜像

NPM官方的管理的包都是从 npmjs.com下载的,但是这个网站在国内速度很慢。

这里推荐使用淘宝 NPM 镜像 npm.taobao.org/ ,淘宝 NPM 镜像是一个完整 npmjs.com 镜像,同步频率目前为 10分钟一次,以保证尽量与官方服务同步。

设置镜像地址:

经过下面的配置,以后所有的 npm install 都会经过淘宝的镜像地址下载

npm config set registry registry.npm.taobao.org

查看npm配置信息

npm config list


4)、npm下载依赖:【npm install命令】的使用

#使用 npm install 安装依赖包的最新版,

#模块安装的位置:项目目录\node_modules

#安装会自动在项目目录下添加 package-lock.json文件,这个文件帮助锁定安装包的版本

#同时package.json 文件中,依赖包会被添加到dependencies节点下,类似maven中的

npm install jquery

#npm管理的项目在备份和传输的时候一般不携带node_modules文件夹

npm install #根据package.json中的配置下载依赖,初始化项目

#如果安装时想指定特定的版本

npm install jquery@2.1.x

#devDependencies节点:开发时的依赖包,项目打包到生产环境的时候不包含的依赖

#使用 -D参数将依赖添加到devDependencies节点

npm install --save-dev eslint

#或

npm install -D eslint

#全局安装

#Node.js全局安装的npm包和工具的位置:用户目录\AppData\Roaming\npm\node_modules

#一些命令行工具常使用全局安装的方式

npm install -g webpack


5、其它命令

#更新包(更新到最新版本)

npm update 包名

#全局更新

npm update -g 包名

#卸载包

npm uninstall 包名

#全局卸载

npm uninstall -g 包名


九、Babel

=================================================================

1、简介


Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。

2、安装


安装命令行转码工具

Babel提供babel-cli工具,用于命令行转码。它的安装命令如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CyLaBj6q-1614263558260)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225134441175.png)]

npm install --global babel-cli

#查看是否安装成功

babel --version


3、Babel的使用


1)、初始化项目

npm init -y

2)、创建文件

下面是一段ES6代码:

// 转码前

// 定义数据

let input = [1, 2, 3]

// 将数组的每个元素 +1

input = input.map(item => item + 1)

console.log(input)

3)、配置.babelrc

Babel的配置文件是.babelrc,存放在项目的根目录下,该文件用来设置转码规则和插件,基本格式如下。

{

"presets": [],

"plugins": []

}

presets字段设定转码规则,将es2015规则加入 .babelrc:

{

"presets": ["es2015"],

"plugins": []

}


3)、安装转码器

在项目中安装

npm install --save-dev babel-preset-es2015

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-u0I95hZr-1614263558261)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225135541910.png)]


4)、转码

转码结果写入一个文件

mkdir dist1

#指定文件转码

--out-file 或 -o 参数指定输出文件

babel src/example.js --out-file dist1/compiled.js

或者

【babel src/example.js -o dist1/compiled.js】

整个目录转码

mkdir dist2

--out-dir 或 -d 参数指定输出目录

babel src --out-dir dist2

或者

【babel src -d dist2】


十、模块化

===============================================================

Javascript不是一种模块化编程语言,它不支持"类"(class),包(package)等概念,更遑论"模块"(module)

什么是模块化开发


[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TBDfhU2F-1614263558263)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225141946655.png)]

传统非模块化开发有如下的缺点:

  • 命名冲突

  • 文件依赖

模块化规范:

  • CommonJS模块化规范

  • ES6模块化规范


【ES5】模块化规范


01.js代码

通过 module.exports 来方法暴露

//创建js方法

const sum = function(a,b){

return parseInt(a) + parseInt(b)

}

const subtract = function(a,b){

return parseInt(a) - parseInt(b)

}

//设置哪些方法可以被调用

//方法暴露

module.exports = {

sum,

subtract

}

02.js代码:调用01.js代码

通过require 来引入

//引入模块,注意:当前路径必须写 ./

const m = require('./01')

console.log(m);

const result1 = m.sum(1,2);

const result2 = m.subtract(1,2);

console.log(result1,result2);

运行程序

node 02.js

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uSO9Uues-1614263558265)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225151250510.png)]

CommonJS使用 exports 和require 来导出、导入模块。


【ES6】模块化规范


注意:这时的程序无法运行的,因为ES6的模块化无法在Node.js中执行,需要用Babel编辑成ES5后再执行。

第一种写法

导出模块

export function getList() {

console.log('获取数据列表')

}

export function save() {

console.log('保存数据')

}

导入模块:

//只取需要的方法即可,多个方法用逗号分隔

import { getList, save } from "./userApi.js"

getList()

save()

保证之前上面babel的环境在,并转换为es5的语法

babel es6model -d es6model_es5


第二种写法

导出模块

export default{

getList(){

console.log("获取数据列表2");

},

save(){

console.log("保存数据2");

}

}

导入模块:

import user from "./userApi2"

user.getList();

user.save();

保证之前上面babel的环境在,并转换为es5的语法

babel es6model -d es6model_es5

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eSfkfPWK-1614263558267)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225155415717.png)]


十一、Webpack

====================================================================

1、什么是Webpack


Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。减少了页面的请求。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeovxunL-1614263558268)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225162559415.png)]


2、Webpack安装


全局安装

npm install -g webpack webpack-cli

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0y54Vvud-1614263558270)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225162936999.png)]

安装后查看版本号

webpack -v

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9P8E0drB-1614263558272)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225163022338.png)]


3、初始化项目


1)创建webpack文件夹

进入webpack目录,执行命令

npm init -y

2)创建src文件夹

3)src下创建common.js

exports.info = function (str) {

document.write(str);//在浏览器中输出

}

4)src下创建utils.js

exports.add = function (a, b) {

return a + b;

}

5)src下创建main.js

const common = require('./common');

const utils = require('./utils');

common.info('Hello world!'+ utils.add(100,200));


4、JS打包


webpack目录下创建配置文件webpack.config.js

以下配置的意思是:读取当前项目目录下src文件夹中的main.js(入口文件)内容,分析资源依赖,把相关的js文件打包,打包后的文件放入当前目录的dist文件夹下,打包后的js文件名为bundle.js

const path = require("path"); //Node.js内置模块

module.exports = {

entry: './src/main.js', //配置入口文件,main.js文件中已经引入了另外两个js文件

output: {

path: path.resolve(__dirname, './dist'), //输出路径,__dirname:当前文件所在路

径,

filename: 'bundle.js' //输出文件

}

}

命令行执行编译命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0D3j2axA-1614263558273)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225221314687.png)]

webpack # 有黄色警告

webpack --mode=development # 没有警告

执行后查看bundle.js 里面包含了上面两个js文件的内容并惊醒了代码压缩

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bZA3jikz-1614263558276)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225221631798.png)]

也可以配置项目的npm运行命令,修改package.json文件

"scripts": {

//...,

"dev": "webpack --mode=development"

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5rC4ixle-1614263558277)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225221413175.png)]

运行npm命令执行打包:

npm run dev


查看上面打包后的文件效果

创建一个.html文件,引用bundle.js

用浏览器打开查看结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WsWQrb6N-1614263558280)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225221906617.png)]


5、CSS打包


安装style-loader和 css-loader

Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。Loader 可以

理解为是模块和资源的转换器。

首先我们需要安装相关Loader插件,css-loader 是将 css 装载到 javascript;style-loader 是让 javascript认识css

npm install --save-dev style-loader css-loader

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NDbIIBYm-1614263558282)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225222048180.png)]

修改webpack.config.js

const path = require("path"); //Node.js内置模块

module.exports = {

//...,

output:{},

module: {

rules: [

{

test: /.css$/, //打包规则应用到以css结尾的文件上

use: ['style-loader', 'css-loader']

}

]

}

}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UFdSRLbf-1614263558284)(../../../../../AppData/Roaming/Typora/typora-user-images/image-20210225222703101.png)]

在src文件夹创建body.css

body{

background:pink;

}

修改main.js

紧跟潮流

大前端和全栈是以后前端的一个趋势,懂后端的前端,懂各端的前端更加具有竞争力,以后可以往这个方向靠拢。

这边整理了一个对标“阿里 50W”年薪企业高级前端工程师成长路线,由于图片太大仅展示一小部分

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】