参考资料
01 大前端基础知识概述
02 概述和前端工具VSCode安装
vscode官网 下载,exe安装即可。
- 插件:中文插件 搜索chinese
- 新建一个文件夹,作为项目文件
- vscode 字体设置
文件-首选项-设置-搜索fonts - 开启完整的Emment语法支持 (默认已打开)
文件-设置-搜索 Emment
03 Nodejs的安装
node.js官网 选择对应版本下载,exe安装。 查看版本: cmd 输入 node -v
04 Nodejs了解和快速入门
nodejs API文档 Node.js 是一个基于 V8 JavaScript 引擎构建的 JavaScript 运行时。
PS E:\Project\csdn\taohy大前端\nodejs> node hello.js
Hello World
05 Nodejs实现htppserver服务
const http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/html'});
response.end('<strong>Hello Server</strong>');
}).listen(8888);
console.log('您启动的服务是 htpp://localhost:8888 已启动成功!')
06 Nodejs操作Mysql数据库
证明Nodejs是一门服务端的语言
npm install mysql
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'taohongyu',
database: 'kuangshen'
});
connection.connect();
connection.query('SELECT * FROM account', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results);
});
connection.end();
注意:内置模块在安装时就已经自带了,第三方模块需要另外npm安装
07 ES6概述
- ES6, 全称 ECMAScript 6.0 ,是 JavaScript 的下一个版本标准,2015.06 发版。
08 ES6 let和const的认识
<script>
var name='taohy';
var link ='http://baidu.com';
var PI=Math.PI;
console.log(name);
console.log(link);
console.log(PI);
let name2 = 'dabao';
let link2 = 'http://bing.com';
const PI2 =Math.PI;
console.log(name2);
console.log(link2);
console.log(PI2);
</script>
09 ES6 let和const和var的区别
<script>
'use strict';
for (let i = 0; i < 5; i++) {
console.log(i);
}
const PI = Math.PI;
PI = 100;
console.log(PI);
</script>
</body>
10 ES6 模板字符串
<script>
var person = {
name: 'taohy',
address: '江苏省苏州市',
link: 'csdn'
}
let address = '我叫' + person.name + ',地址在' + person.address + ',链接在' + person.link;
console.log(address);
let address2 = `我叫${person.name},地址在${person.address},链接在${person.link}`;
console.log(address2);
</script>
11 ES6 函数默认参数
<script>
function sum(a,b=20){
return a+b;
}
var sum = sum(100);
console.log('result:'+sum);
</script>
12 ES6 函数箭头函数(重点)
在未来项目开发项目中,比如小程序uniapp或者一些常见的脚手架大量使用
<script>
function sum(a, b) {
return a + b;
}
var sum = (a, b) => {
return a + b;
}
var sum =(a,b) => a + b;
</script>
13 ES6 对象初始化简写及案例分析
<script>
var info = {
name: 'taohy',
age: 20,
link: 'csdn',
go: function () {
console.log('我骑车上班!')
}
}
var name = 'taohy';
var age = 20;
var link = 'csdn';
var info2 = {
name: name,
age: age,
link: link,
go () {
console.log('我骑车上班!')
}
}
console.log(info2.name);
console.log(info2.age);
console.log(info2.link);
info2.go();
</script>
<script>
$('#button').on('click', function () {
var uname = $('#uname').val();
var upwd = $('#upwd').val();
var pars = { uname, upwd };
$ajax({
type: 'post',
url: 'xxx',
data: pars,
success() {
}
})
});
</script>
14 ES6 对象解构
<script>
var name = 'taohy';
var age = 20;
var link = 'csdn';
var info2 = {
name: name,
age: age,
link: link,
go() {
console.log('我骑车上班!')
}
}
console.log(info2.name);
console.log(info2.age);
console.log(info2.link);
info2.go();
console.log(info2[name]);
console.log(info2[age]);
console.log(info2[link]);
info2['go']();
var {name,age,go}=info2;
console.log(name,age);
go();
</script>
15 ES6 对象传播操作符
把一个对象传播到另一个对象
<script>
var person={
name:'taohy',
address:'suzhou',
link:'csdn',
phone:15250,
go(){
console.log('开始上课了....')
}
}
var {name,address,...person2} = person;
console.log(name);
console.log(address);
console.log(person2);
</script>
16 ES6 对象传播操作符案例分析
<script>
var userPage = {pages:10,users:[{},{}],pageNo:1,pageSize:100,total:100};
var {users,...userPage2} = userPage;
console.log(users);
console.log(userPage2);
</script>
17 ES6 数组Map
<script>
let arr = [1, 2, 3, 4, 5, 6, 7];
let arrNew = [];
for (let i = 0; i < arr.length; i++) {
arrNew.push(arr[i] * 2);
}
console.log(arrNew);
var arrNew2 = arr.map(ele => ele * 2);
console.log(arrNew2);
var users = [{ age: 10, name: '小绿' }, { age: 12, name: '小红' }];
var usersNew = users.map(ele => {
ele.age = ele.age + 1;
ele.check = true;
return ele;
})
console.log(usersNew);
</script>
18 ES6 数组Reduce
<script>
var arr= [1,2,3,4];
var result= arr.reduce(function(a,b){
return a+b;
})
console.log(result);
</script>
19 ES6 NodeJS的小结
ES6 js新建文件中,在node中可以直接使用
20 Npm包管理器快速构建node工程
- NPM是随同NodeJS一起安装的包管理工具,cmd 输入 npm -v 查看版本
- NPM 全称Node Package Manager,是Node.js包管理工具,是全球最大模块生态系统,里面所有模块都是开源免费的。也是Node.js的包管理工具,相当于前端的Maven。
- 官网地址 https://www.npmjs.com/
- node.js API 网站 http://nodejs.cn/api/ 还需要第三方模块,就需要npm包
== 快速构建nodejs工程==
npm init 初始化——得到package.json 内容如下:
{
"name": "npm", // 工程名
"version": "1.0.1", // 版本
"description": "我是一个node工程", // 描述
"main": "index.js", // 入口js
"scripts": { // 运行脚本
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [
"耨肉"
],
"author": "taohy", // 作者
"license": "ISC" // 授权协议
}
21 Npm包管理器安装模块
2 快速安装和依赖第三方模块。比如npm install mysql redis等
2-1 快速安装依赖第三方模块?
npm install xxx 或者 npm i xxx模块名
2-2 安装模块放在什么地方?
安装的模块会放入项目的node_modules文件夹中
2-3 安装模块如何使用?
新建js文件,require导入模块,具体使用看官方文档
const redis= require("redis")
2-4 模块和package.json有什么关系?
package.json中有个依赖:
"dependencies": {
"jquery": "^3.6.0",
"mysql": "^2.18.1",
"redis": "^4.1.0",
"vue": "^3.2.37"
}
通过npm install xxx 会记录在package.json这个文件中。
记录的作用,就是方便未来复用。
以后如果新建项目,直接吧package.json拷贝到新项目中:
执行命令 npm install 会把pacakge.json中的依赖全部执行一遍.
这样就可以避免重复下载模块。很方便去集成的第三方模块。
为什么不直接拷贝第三方模块?因为,下载的模块依赖过多,文件过大,而且文件比较混乱。拷贝速度慢。
2-5 如果安装模块很慢 怎么办?
阿里云npm镜像 官网地址 https://developer.aliyun.com/mirror/NPM
npm install -g cnpm --registry=https://registry.npm.taobao.org
以后就可以用cnpm install xxx
2-5 如何运行?
cmd窗口运行 node redisdb.js 停止运行ctrl+c
2-6 如何下载多个?
npm install xxx xxxx
npm install jquery vue mysql
2-7 下载指定的版本号?
npm install xxx@版本号
具体的版本号,查看官网,不指定版本号,下载最新的版本
2-8 如何卸载模块?
npm uninstall xxx xxx
22 Npm包管理器的卸载和小结
23 Babel的安装
- ES6的某些高级语法在浏览器环境甚至是node.js环境中无法执行。
- Babel是一个广泛使用的转码器,可以将ES6代码转换成ES5代码,从而实现现有环境执行。
- 这意味着,你可以现在就用ES6编写程序,而不用担心现有环境是否支持。
// 注意要用管理员运行cmd窗口
// 安装
npm install -g babel-cli
// 查看babel版本
babel --version
24 Babel的使用
npm init -y
let name='taohy';
const title='苏州';
let arr=[1,2,3,4,5];
let newarr = arr.map(a=>a*2);
console.log(name);
console.log(title);
console.log(newarr);
// node运行js
node src/example.js
- 配置babelrc,存放在根目录下,该文件用来设置转码规则和插件
// 新建文件 .babelrc
{
"presets":["es2015"],
"plugins":[]
}
PS E:\Project\csdn\taohy大前端\babelpro> cnpm install --save-dev babel-preset-es2015
// 在dist下面新增example.js
PS E:\Project\csdn\taohy大前端\babelpro> babel src -d dist
src\example.js -> dist\example.js
25 Babel自定义脚本
{
"name": "babelpro",
"version": "1.0.0",
"main": "index.js",
"devDependencies": {
"babel-preset-es2015": "^6.24.1"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev":"babel src -d dist" // 自定义新增
},
"keywords": [],
"author": "",
"license": "ISC",
"description": ""
}
npm run dev
26 模块化CommonJS规范
const sum = function(a,b){
return a+b;
}
const sub = function(a,b){
return a-b;
}
const mul = function(a,b){
return a*b;
}
const di = function(a,b){
return a/b;
}
module.exports={
sum,
sub,
mul,
di
}
node 执行js即可
27 模块化ES6规范
需要babel转码
export function getlist(){
console.log('获取数据列表');
}
export function save(){
console.log('保存数据');
}
import {getlist,save} from './userApi.js'
getlist();
save();
全部导出
export default {
getlist() {
console.log('获取数据列表');
},
save() {
console.log('保存数据');
}
}
import user from './userApi.js'
user.getlist();
user.save();
28 WebPack概述和安装
- WebPack是一个前端资源加载/打包工具,它将根据模块的依赖关系进行静态分析,然后将这些模块安装指定的规则生成对应的静态资源。
- WebPack可以将多种静态资源js、css、less转换成一个静态文件,减少了页面的请求。
WebPack安装: - 全局安装
npm install -g webpack webpack-cli
webpack -v
29 WebPack合并JS
-
- 创建一个nodejs项目 npm init -y
-
- 创建一个src目录
-
- 在src存放两个需要合并的util.js和common.js
util.js
exports.add = (a, b) => a + b;
common.js
exports.info = function(str){
console.log(str);
document.write(str);
}
-
- 准备一个入口文件 main.js,其实就是模块集中进行引入
main.js
const util = require('./util');
const common = require('./common');
common.info("hello world " + util.add(100, 100));
-
- 在根目录下 定义一个webpack.config.js文件配置打包的规则
webpack.config.js
const path = require('path');
module.exports={
entry:'./src/main.js',
output:{
path:path.resolve(__dirname,'./dist'),
filename:"bundle.js"
}
}
-
- 执行webpack命令 -w监听执行
-
- 查看效果
30 WebPack合并CSS
-
- 安装style-loader和css-loader
- webpack 本事只能处理js模块,如果要处理其他类型的文件,就需要使用loader进行转换。
- loader可以理解为是模块和资源的转换器。
- 首先我们需要安装相关loader插件
- css-loader是将css装载到js
- style-loader是让js认识css
npm install --save-dev style-loader css-loader
// 安装完成后,在package.json中可以看到依赖信息
module:{
rules:[{
test:/\.css$/,
use:['style-loader','css-loader']
}]
}
body{
background-color: pink;
}
-
- 修改main.js,在第一行引入style.css
require('./style.css');
- 直接cmd运行 webpack
- 修改package.json 文件 "dev":"webpack -w" 然后cmd运行 npm run dev
-
- 浏览器中查看index.html 看看背景是不是可以变成粉色?
31 WebPack小结
官网:https://www.webpackjs.com/
32VueElementAdmin初体验
-
vue-element-admin是一个后台前端解决方案,基于vue和element-ui实现。 -
官网地址 https://panjiachen.github.io/vue-element-admin-site/zh/guide/ -
gitee仓库地址https://gitee.com/panjiachen/vue-element-admin?_from=gitee_search -
- 从gitee仓库 下载zip 解压
-
- vscode打开项目
-
- 命令行窗口输入 npm install 安装package.json中的依赖包
-
- 命令行窗口输入 npm run dev 把项目运行起来
报错解决方法:
//>vue-element-admin@4.4.0 dev vue-cli-service serve 'vue-cli-service'
//不是内部或外部命令,也不是可运行的程序 或批处理文件。
npm uninstall webpack-dev-server
npm install webpack-dev-server@2.9.1
npm run dev
33 总结及展望
uni-app官网 笔记下载地址:https://download.csdn.net/download/weixin_29431461/85711389
|