Web前端开发之VUE01——ES6导入和导出、promise、webpack、vue项目介绍、vue安装过程

目录

默认导入和按需导入:

回调地狱:

promise:

 .catch捕获错误:

 promise.all()方法:

 promise.race()方法: 

 async/await:

同步任务与异步任务:

 EventLoop:

 宏任务和微任务:

webpack入门及使用:

自定义webpack打包入口和出口:

自动打包插件:

devServer节点配置:

 loader加载器,用于加载css等其它后缀名模块:

  安装loader:

样式表中图片url的设置:

 解决图片依旧无法显示的问题:

babel打包js文件高级语法:

 webpack打包发布build:

 自动清理dist目录:

企业级项目打包发布:

 SourceMap: 

 vue项目介绍:

修改脚手架配置:

vue安装:


默认导入和按需导入:

默认导入:

 

按需导入:

回调地狱:

 

promise:

Promise构造函数

Promise(excutor){},excutor是执行器(resolve,reject)=>{},在promise内部立即同步调用,异步操作在执行器中执行。

Promise.resolve方法

返回一个Promise对象,状态取决于传入参数类型。传入的参数为非promise对象,则会返回一个成功状态的Promise对象,传入的参数为promise对象,参数对象的状态会决定返回的Promise对象的状态

Promise.reject方法

Promise.reject返回一个失败状态的Promise对象,无论参数是什么,都会是失败状态,即使参数传入成功状态的Promise对象,返回的Promise值是成功的Promise对象,但状态仍为失败。

 .catch捕获错误:

 promise.all()方法:

 promise.race()方法: 

 async/await:

 

 

 示例代码:

const fs=require('fs')
const thenFs=require('then-fs')

// let pms=new Promise(
//
// )

// fs.readFile(__dirname + '/File/1.txt', "utf-8", (err, data) => {
//     if (err){}else{
//         console.log(data)
//     }
// })
// fs.readFile(__dirname + '/File/2.txt', "utf-8", (err, data) => {
//     if (err){}else{
//         console.log(data)
//     }
// })
// fs.readFile(__dirname + '/File/3.txt', "utf-8", (err, data) => {
//     if (err){}else{
//         console.log(data)
//     }
// })

//顺序执行:
// thenFs.readFile(__dirname + '/File/1.txt','utf8')
//     .then(res=>{
//     console.log(res)
//     return thenFs.readFile(__dirname + '/File/2.txt','utf8')
// }).then(res=>{
//     console.log(res)
//     return thenFs.readFile(__dirname + '/File/3.txt','utf8')
// }).then(res=>{
//     console.log(res)
// })

const execLineArr=[
    thenFs.readFile(__dirname + '/File/1.txt','utf8'),
    thenFs.readFile(__dirname + '/File/2.txt','utf8'),
    thenFs.readFile(__dirname + '/File/3.txt','utf8')
]

//promise方法
// Promise.all(execLineArr)
//     .then(([r1,r2,r3])=>{
//         console.log(r1,r2,r3)
// }).catch(err=>{
//     console.log(err)
// })

//race方法:
// Promise.race(execLineArr)
//     .then(res=>{
//         console.log(res)
//     })

async function getAllFile() {
    const r1=await thenFs.readFile('./File/1.txt','utf8')
    //使用await方法,就必须加上async头
    //await可以切换当前promise对象为以值输出
    console.log(r1)
}
getAllFile()

同步任务与异步任务:

 EventLoop:

 宏任务和微任务:

 

 

webpack入门及使用:

使用方法:

1.初始化package-----使用[yarn init -y]已完成操作.

2.新建src文件夹-----默认开发区域就在这个文件夹.

3.加入index.html和index.js-----由于package.json中包含main入口,默认是index.js.

4.第三步操作中入口js是index.js.所以项目会优先调用index.js,并运行.

5.当我们编辑完index.js后,在index.html中写入页面代码,并引入index.js模块.

6.在前一步中如果使用到import语句,可能会报错,提示"Cannot use import statement outside a module",这是由于ES6具有浏览器兼容性问题,所以此处需要webpack以解决js兼容问题.

7.yarn指令的使用请使用[npm install -g yarn]全局安装好yarn):

一些基础代码如下:

//1.检查当前yarn的bin位置
yarn global bin
//2.检查当前yarn的全局安装位置
yarn global dir
//3.卸载yarn
npm uninstall -g yarn

_____________________

8.使用yarn add webpack webpack-cli -D以在项目中安装webpack,因为只有开发时需要,所以使用-D作为开发模式下绑定.

9.在项目根目录中添加webpack.config.js,并在其中输入:

module.exports = { mode: 'development' }

其中mode构建模式属性可以是两个值,一个是development,一个是production.

10.在package.js中添加新的脚本,在scripts中添加如下代码:

"scripts": {
  "dev": "webpack"
}

脚本的使用方法: [yarn run 脚本名]使用此命令以执行脚本,脚本名就是json键,比如此处,则运行yarn run dev即可完成脚本的运行.启动dev脚本可以对项目进行打包和构建,其打包的根据就是webpack.config.js中的设置.

11.项目中会多一个dist文件夹,其中会有一个main.js,就是已经打包和解决过兼容性的js文件.所以我们就可以把index.js的引用改为main.js的引用.

12.打开index.html就可以实现效果.

mode节点可选值:

 webpack.config.js的作用:

自定义webpack打包入口和出口:

const path = require('path')

module.exports = {
  mode: 'development',// mode 用来指定构建模式
  entry: path.join(__dirname+'/src/index.js'),//入口
  output: {//出口
    //出口路径
    path: path.join(__dirname+'/dist'),
    //打包后的名称
    filename: "bundle.js"
  }
}

插件:

自动打包插件:

webpack-dev-server插件:

使用如下命令,完成对此插件的在项目中的安装:

yarn add webpack-dev-server -D

修改scripts脚本为:

"scripts": {
  "dev": "webpack serve"
}

再使用yarn run dev,以启用代码变动自动打包.

如果出现Content not from webpack is served from XXXX directory

其中XXXX路径错误的情况,一般会指向项目中public文件夹,并在其中寻找index.html.

此时如果项目没有public文件夹,就会请求出错.

我们需要在webpack配置中加入,以告诉服务器我们默认访问的路径,主需要写到index.html的所在路径就可以,不需要写index.html,具体代码如下:

devServer: {
  // contentBase: __dirname, -- 请注意,这种写法已弃用
  static: {
    directory: path.join(__dirname, "/src"),
  },
},

实时打包:

html-webpack-plugin插件:

安装指令:yarn add html-webpack-plugin -D

配置插件:

devServer节点配置:

 loader加载器,用于加载css等其它后缀名模块:

 

  安装loader:

 在webpack中万物皆可导入.但是当我们导入less或css就会在打包时报错.

此时我们需要使用loader,安装指令如下:

yarn add style-loader css-loader less-loader sass-loader -D
 

此命令安装了style解析,css解析,less解析,sass解析.

安装后,在webpack配置中加入,以:

module: {
  rules: [
    {test:/\.css$/,use:['style-loader','css-loader']},
    {test:/\.less$/,use:['style-loader','css-loader','less-loader']}
  ]
}

use的顺序一定不能错,不然会报错.

样式表中图片url的设置:

由于webpack打包时,发现png的格式文件,也并没有找到相应的loader,此时就会报错.

此时,我们需要使用命令:

yarn add url-loader file-loader -D

配置方法:类似css-loader的配置:

 解决图片依旧无法显示的问题:

设置rules:

{
  test: /\.(png|jpg|jpeg|gif)$/,
  use: {
    loader:'url-loader',
    options: {
      limit: 10000,
      esModule:false, //图片不显示的问题解决
    }
  },
  type: "javascript/auto"//设置转换:自动
}

 本处参照:webpack使用url-loader图片加载失败解决办法_沉淀在网页的博客-CSDN博客现在webpack5中要使用url-loader比较麻烦 必须加点东西{test: /\.(png|jpg|gif|jpeg)$/,use: [ { loader: 'url-loader', options: { limit: 30000, esModule: false } }],type: 'javascript/auto'}也就是options里面加一https://blog.csdn.net/QQ1443003435/article/details/121108377

babel打包js文件高级语法:

安装指令:

yarn add babel-loader @babel/core @babel/plugin-proposal-class-properties -D

配置方法:

 webpack打包发布build:

使用指令yarn run build执行脚本.

 自动清理dist目录:

为了方便我们以后无数次的删除dist目录.

安装指令:

yarn add clean-webpack-plugin -D
配置:

企业级项目打包发布:

 SourceMap: 

 

 

 

 

 不建议使用source-map方法.

 vue项目介绍:

当我们创建一个vue项目时,会自动生成很多文件,具体如下:

项目的执行顺序和引入关系:

入口函数:所谓入口函数,就是我们在webpack中的入口函数,默认是以main.js进入。这也是可以修改的,我们稍后说明。

修改脚手架配置:

当我们创建vue项目时,不会具有webpack.config.js的文件。这时,我们需要创建或修改该vue.config.js文件内的配置参数。

具体如下:

这里我使用了devServer,了解webpack的应该对此很熟悉。

这里修改了端口和域名的允许访问。

vue安装:

1.安装脚手架yarn global add @vue/cli

2.创建项目

 3.运行项目

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言行物恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值