vue基础+双元学习笔记

目录

 

1 webpack模块打包工具

1.1 webpack基本概念

1.1.1 为什么学webpack

1.1.2 webpack的基本概述

1.2 webpack使用步骤

1.2.1 环境准备

1.2.2 webpack的基本使用

1.3 webpack的配置

1.3.1 webpack的入口和出口

1.3.2 _yarn build执行流程图

1.3.3 隔行变色

1.3.4 webpack的插件

1.3.5 webpack打包css问题

1.3.6 webpack使用加载器css-loader,style-loader

1.3.7 webpack使用加载器less-loader

1.3.8 webpack处理图片文件

1.3.9 webpack加载文件的优缺点

1.3.10 加载字体图标

1.3.11 webpack对JS语法降级加载器

1.4 webpack开发服务器web-dev-server

1.4.1 webpack-dev-server模块的使用

1.4.2 webpack开发服务器改变配置

2 Vue基础

2.1 Vue 的基本概念

2.1.1 为什么学vue

2.1.2 Vue学习方式

2.2 @vue/cli脚手架工程化

2.2.1 脚手架的好处

2.2.2 安装

2.2.3 创建项目

2.2.4 脚手架目录和代码分析

2.2.5 项目架构了解

2.2.6 脚手架自定义配置

2.2.7 eslint检查代码

2.2.8 但vue文件讲解

2.2.9 脚手架项目,清理欢迎页面

2.3 Vue指令

2.3.1 vue插值表达式

2.3.2 vue基础-mvvm设计模式

2.3.3 vue指定-v-bind

2.3.4 Vue指令-v-on

2.3.5 Vue事件处理函数中,拿到事件对象

2.3.6 vue指令-v-on修饰符

2.3.7 按键修饰符

2.3.8 v-model双向绑定

2.3.9 v-model修饰符

2.3.10 Vue指令v-text和v-html

2.3.11 v-show和v-if

2.3.12 Vue指令v-for

3 Vue基础(key, 计算属性, 过滤器, 侦听器)

3.1 Vue基础 _更新监测, key作用

3.1.1 v-for就地更新

3.1.2 虚拟DOM

3.1.3 diff算法

3.1.4 diff算法-key

3.1.4 有key,值唯一不重复的字符串或数字

3.1.5 动态class

3.1.6 动态style

3.2 过滤器

3.2.1 过滤器的更多用法

3.3 计算属性 computed

3.3.1 计算属性缓存

3.3.2 计算属性的完整写法

3.4 侦听器

4 组件

4.1 组件概念,创建和使用

4.1.1 组件的概念

4.1.2 组件的基础使用

4.1.3 scoped作用

4.2 组件通信

4.2.1 组件通信_父传子_props

4.2.2 组件通信_父向子_配合通讯

4.2.3 单项数据流

4.2.4 组件通信_子向父传值_自定义事件

4.2.5 组件通信_EventBus

4.3 vue生命周期讲解

4.3.1 vue生命周期

4.3.2 钩子函数

4.3.3 钩子函数-初始化阶段

4.3.4 挂载阶段

4.3.5 更新阶段

4.3.6 销毁阶段

5 axios

5.1 axios的介绍

5.2 axios使用

5.3 get传参

5.4 post请求与传参

5.5 axios全局配置

6 $refs和$nextTick使用

6.1 获取DOM

​6.2 获取组件对象

6.3 $nextTick

6.4 组件name属性使用

7 Vue组件-进阶

7.1 动态组件

7.2 组件缓存

7.3 组件缓存-激活的钩子函数

7.4 组件插槽

7.4.1 插槽默认内容

7.4.2 具名插槽

7.4.3 作用域插槽

7.5 自定义指令

7.5.1 自定义指令的传值

8 Vue路由系统

8.1 Vue路由简介和基础使用

8.1.1 使用路由的原因

8.1.2 vue-router

8.1.3 组件分类

8.1.4 vue-router模块

8.2 声明式导航

8.2.1 声明式导航的基础使用

8.2.2 声明式导航-跳转传参

8.3 路由重定向

8.3.1 路由-404配置

8.3.2 路由-模式设置

8.4 编程式导航

8.4.1 编程式导航-跳转传参

8.5 路由嵌套

8.5.1 声明式导航-激活类名的区别

8.5.2 导航守卫

9 vant组件库

10 跨域解决方案--反向代理


  >  >  >  

1 webpack模块打包工具

1.1 webpack基本概念

1.1.1 为什么学webpack

  • 减少文件数量
  • 缩减代码体积
  • 提高浏览器打开的速度

webpack官网地址

1.1.2 webpack的基本概述

webpack本质是,一个第三方模块包,用于分析并打包代码

  • 支持所有类型文件的打包
  • 支持less/sass => css
  • 支持ES6/7/8 => ES5(高级的语法进行降级,兼容低版本浏览器)
  • 压缩代码,提高加载速度

1.2 webpack使用步骤

1.2.1 环境准备

(1) 初始化包环境

yarn init

(2) 安装依赖包

yarn add webpack webpack-cli -D

(3) 配置script(自定义命令)

"script": {

        "bulid": "webpack"

}

1.2.2 webpack的基本使用

(1) 首次打包

需求: 2个js文件 ->打包成1个js文件

分析:

①:新建src下的资源

②:add.js – 定义求和函数并导出

③:index.js – 引入add模块并使用函数输出结果

④:执行 `yarn build` 自定义命令, 进行打包 (确保终端路径在src的父级文件夹)

⑤:打包后默认生成dist和main.js, 观察其中代码

(2) 再次打包

需求:代码更多后, 如何打包呢?

分析:

①:src下新建tool/tool.js

②:定义数组求和函数导出

③:index.js – 引入tool模块的函数并使用, 打印结果

④:执行 `yarn build` 自定义命令, 进行打包 (确保终端路径在src的父级文件夹)

⑤:打包后默认生成dist和main.js, 观察其中代码

代码修改了要重新打包,且路径正确

process.env访问开发或者产品环境配置文件

1.3 webpack的配置

1.3.1 webpack的入口和出口

(1) 配置

默认入口: ./src/index.js

默认出口: ./dist/main.js

webpack配置 - webpack.config.js(默认)

  • 新建src并列处, webpack.config.js

  • 填入配置项

        const path = require("path")

        module.exports = {
            entry: "./src/main.js", // 入口
            output: { 
                path: path.join(__dirname, "dist"), // 出口路径
                filename: "bundle.js" // 出口文件名
            }
        }

  • 修改package.json, 自定义打包命令 - 让webpack使用配置文件

1.3.2 _yarn build执行流程图

1.3.3 隔行变色

步骤:

①:从0准备环境, 初始化包环境, 下载webpack和webpack-cli包, 配置自定义命令build

②:yarn下载jquery, 新建public/index.html,准备一些li标签

③:src/main.js 引入jquery, 编写功能代码

④:执行打包命令

⑤:复制public/index.html到dist/, 然后引入打包后的js, 运行网页观察效果

重点:webpack打包后的js引入到html中使用

1.3.4 webpack的插件

_html-webpack-plugin

简化了html的创建

(1) 安装

yarn add html-webpack-plugin -D

(2) webpack.config.js添加配置

1.3.5 webpack打包css问题

新建 - src/css/index.css

编写去除li圆点样式代码

(重要) 一定要引入到入口才会被webpack打包

执行打包命令观察效果

报错: 因为webpack默认只能处理js文件

1.3.6 webpack使用加载器css-loader,style-loader

css-loader 让webpack能处理css类型文件

style-loader 把css插入到DOM中

(1) 下载安装加载器

yarn add style-loader css-loader -D

(2) 配置

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
    // ...其他代码
    module: { 
        rules: [ // loader的规则
          {
            test: /\.css$/, // 匹配所有的css文件
            // use数组里从右向左运行
            // 先用 css-loader 让webpack能够识别 css 文件的内容并打包
            // 再用 style-loader 将样式, 把css插入到dom中
            use: [ "style-loader", "css-loader"]
          }
        ]
    }
}

总结: 万物皆模块, 引到入口, 才会被webpack打包, css打包进js中, 然后被嵌入在style标签插入dom上

1.3.7 webpack使用加载器less-loader

(1) 安装

yarn add less less-loader -D

(2) 配置

module: {
  rules: [ // loader的规则
    // ...省略其他
    {
        test: /\.less$/,
        // 使用less-loader, 让webpack处理less文件, 内置还会用less翻译less代码成css内容
        use: [ "style-loader", "css-loader", 'less-loader']
    }
  ]
}

1.3.8 webpack处理图片文件

资源模块(asset module)是一种模块类型,它允许使用资源文件(字体,图标等)而无需配置额外 loader。

直接入口文件导入打包会报错,因为webpack无法自己处理图片文件

webpack5, 使用asset module技术实现字体文件和图片文件处理, 无需配置额外loader

以前用url-loader和file-loader来处理 现在webpack.config.js – 针对图片文件设置type: “assets“

再次打包观察效果 小于8KB文件, 文件转base64打包在js中, 大于8KB, 文件自动命名输出到dist下, 打包观察效果和2图区别

1.3.9 webpack加载文件的优缺点

图片翻译成了base64,放在js文件中

好处:浏览器不用发请求了,直接可以读取, 速度快

坏处: 图片太大,再转`base64`就会让图片的体积增大 30% 左右, 得不偿失

yarn install下载package.json中的所有包

1.3.10 加载字体图标

src/assets 下放入fonts字体相关文件夹(预习资料里)

src/main.js 引入 assets/fonts/iconfont.css

src/main.js 创建一个i标签, 使用字体图标标签添加到body上

添加针对字体文件的加载器规则, 使用asset/resource(直接输出文件并配置路径)

打包后运行网页观察效果

1.3.11 webpack对JS语法降级加载器

babel官网: https://www.babeljs.cn/

babel-loader文档: https://webpack.docschina.org/loaders/babel-loader/

  • babel: 一个javascript编译器, 把高版本js语法降级处理输出兼容的低版本语法
  • babel-loader: 可以让webpack转译打包的js代码
  • 在src/main.js – 定义箭头函数, 并打印箭头函数变量 (千万不能调用, 为了让webpack打包函数, 看降级效果)
// 高级语法
const fn = () => {
  console.log("你好babel");
}
console.log(fn) // 这里必须打印不能调用/不使用, 不然webpack会精简成一句打印不要函数了/不会编译未使用的代码
// 没有babel集成时, 原样直接打包进lib/bundle.js
// 有babel集成时, 会翻译成普通函数打包进lib/bundle.js
  • 下载加载器

yarn add -D babel-loader @babel/core @babel/preset-env

  • 配置到webpack.config.js上
{
        test: /\.js$/,
        exclude: /(node_modules|bower_components)/, // 不去匹配这个文件夹下的js文件
        use: {
            loader: 'babel-loader', // 使用这个loader处理js文件
            options: { // 加载器选项
                presets: ['@babel/preset-env'] // 预设:转码规则(用bable开发环境本来预设的)
            }
        }
    }
  • 打包观察是否降级

1.4 webpack开发服务器web-dev-server

每次修改代码,重新yarn build打包,才能看到最新的效果,实际工作中,打包yarn build非常耗时

原因:

从0构建依赖

磁盘读取对应的文件到内存,webpack开始加载

再用对应的loader进行处理

将处理完的内容,输出到磁盘指定目录

解决:

起一个开发服务器,缓存一些已经打包的内容,只重新打包修改的文件,最终运行在内存中给浏览器使用

总结:

webpack开发服务器,把代码运行在内存中,自动更新,实时返回给浏览器显示

1.4.1 webpack-dev-server模块的使用

(1) 下载模块包

yarn add webpack-dev-server -D

(2) 自定义webpack开发服务器启动命令server-在package.json里

"script": {

        "build": "webpack",

        "server": "webpack serve"

}

(3) 启动当前工程里的webpack开发服务器

yarn server

(4) 重新编写代码,观察控制台和浏览器是否自动和更新

1.4.2 webpack开发服务器改变配置

(1) 配置端口号devServer.port

webpack.config.js中

devServer: {

        port: 3000

}

2 Vue基础

2.1 Vue 的基本概念

2.1.1 为什么学vue

  • 开发速度快,更高效
  • 企业开发都在使用
  • 前端工程师必备

(1) Vue是什么

渐进式的js框架,一套拥有自己规则的语法

官网地址:http://cn.vuejs.org/ (作者:尤雨溪)

(2) Vue里的渐进式概念

Vue从基础开始,会循序渐进向前学习,可以逐渐进行使用

(3) 库和框架

库: 封装的属性或方法(例如jQuery)

框架: 拥有自己的规则和元素,比库强大的多(Vue)

2.1.2 Vue学习方式

传统开发方式: 基于html文件开发Vue

工程化开发方式: 在webpack环境中开发Vue,这是最推荐最常用的

2.2 @vue/cli脚手架工程化

@vue/cli是Vue官方提供的一个全局模块包(得到vue命令), 此包用于创建脚手架项目

脚手架是为了保证各施工过程顺利进行而搭设的工作平台

2.2.1 脚手架的好处

开箱即用

0配置webpack

        babel支持

        css, less支持

        开发服务器支持

2.2.2 安装

(1) 安装

yarn global add @vue/cli

(2) 查看是否成功

vue -V //显示脚手架的版本

2.2.3 创建项目

(1) 创建项目

vue create vuecli-demo 注意: 项目名称不能有大写字母,中文和特殊字符

(2) 选择模板和包管理器,等待脚手架项目创建完成

(3) 启动开发服务器

cd 进入项目下,启动内置的webpack本地热更新开发服务器-浏览器项目页面

cd vuecli-demo

yarn serve

2.2.4 脚手架目录和代码分析

2.2.5 项目架构了解

目标: 知道项目入口,以及代码执行顺序和引入关系

main.js和App.vue, 以及index.html作用和关系?

  • main.js – 项目打包主入口 – Vue初始化
  • App.vue – Vue页面主入口
  • index.html – 浏览器运行的文件
  • App.vue => main.js => index.html

2.2.6 脚手架自定义配置

项目中没有webpack.config.js文件,因为Vue脚手架项目用的vue.config.js

src并列处新建vue.config.js, 填入配置, 重启webpack开发服务器

2.2.7 eslint检查代码

目标:是一种代码检查的工具

如果写代码违反了eslint的规则-报错(代码格式有没有问题,冗余)

演示: 在main.js中随便定义变量 – 不使用 – 观察eslint报错

方式1: 手动解决掉错误, 以后项目中会讲如何自动解决

方式2: 暂时关闭eslint检查(因为现在主要精力在学习Vue语法上), 在vue.config.js中配置后重启服务

module.exports = {

        lintOnSave: false // 关闭exlint检查

}

2.2.8 单vue文件讲解

vue推荐采用.vue文件来开发项目

template里只能有一个根标签

js独立作用域互不影响

style配合scoped属性,保证样式只针对当前template内标签生效

vue文件配合webpack,把他们打包起来插入到index.html

(2) 插件Vetur插件(vscode插件)

代码高亮提示和智能补全

2.2.9 脚手架项目,清理欢迎页面

assets和components 文件夹下的一切都删除掉 (不要默认的欢迎页面)

src/App.vue默认有很多内容, 可以全部删除留下template和script和style的框

2.3 Vue指令

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值