Vue2学习笔记

2021-12-20  本文已影响0人  Zerek_W

一、Vue核心


模板语法

1.插值语法:
功能: 用于解析标签体内容
语法: {{xxx}} ,xxxx 会作为js表达式解析
2.指令语法:
功能: 解析标签属性、解析标签体内容、绑定事件
Vue 中有有很多的指令,v-bind 举个例子

数据绑定

1.单向数据绑定:
语法:v-bind:href = "xxx" 或简写为 :href
特点:数据只能从 data 流向页面
2.双向数据绑定
语法:v-model:value="xxx" 或简写为v-model="xxx"
特点:数据不仅能从 data 流向页面,还能从页面流向 data

MVVM模型

  1. M:模型(Model) :对应 data 中的数据
  2. V:视图(View) :模板
  3. VM:视图模型(ViewModel) : Vue 实例对象


    image.png

事件处理

1.绑定监听

  1. 按键修饰符

计算属性与监视

1.计算属性-computed

class与style绑定

在应用界面中, 某个(些)元素的样式是变化的, class/style 绑定就是专门用来实现动态样式效果的技术
1.class绑定:

2.style绑定:

条件渲染

1.条件渲染指令:

2.比较v-if 与 v-show
如果需要频繁切换 v-show 较好,当条件不成立时, v-if 的所有子节点不会解析(项目中使用

列表渲染

遍历数组: v-for / index
遍历对象: v-for / key

过滤器

功能: 对要显示的数据进行特定格式化后再显示
注意: 并没有改变原本的数据, 是产生新的对应的数据

自定义指令

Vue 实例生命周期

二、vue组件化编程


模块与组件

单文件组件

基本使用:
引入组件、映射成标签、使用组件标签

三、使用Vue脚手架


Vue 脚手架是 Vue 官方提供的标准化开发工具(开发平台)。
全局安装 npm install -g @vue/cli
创建项目 vue create xxxx
启动项目 npm run serve

ref与props

混入:

混入 (mixin) 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

插件:

Vue 插件是一个包含 install 方法的对象
通过 install 方法给 Vue 或 Vue 实例添加方法, 定义全局指令

Vue中的自定义事件

  1. $on(eventName, listener): 绑定自定义事件监听
  2. $emit(eventName, data): 分发自定义事件
  3. $off(eventName): 解绑自定义事件监听
  4. $once(eventName, listener): 绑定事件监听, 但只能处理一次

全局事件总线

消息订阅与发布

它包含以下操作:
(1) 订阅消息 --对应绑定事件监听
(2) 发布消息 --分发事件
(3) 取消消息订阅 --解绑事件监听

过度与动画

操作 css 的 trasition 或 animation
vue 会给目标元素添加/移除特定的 class
过渡的相关类名:

  1. xxx-enter-active: 指定显示的 transition
  2. xxx-leave-active: 指定隐藏的 transition
  3. xxx-enter/xxx-leave-to: 指定隐藏时的样式

四、Vue中的ajax


解决开发环境 Ajax 跨域问题

使用代理服务器

vue 项目中常用的 2 个 Ajax 库

slot 插槽

父组件向子组件传递带数据的标签,当一个组件有不确定的结构时, 就需要使用
slot 技术,注意:插槽内容是在父组件中编译后, 再传递给子组件的。

  1. 默认插槽
  2. 命名插槽
  3. 作用域插槽

五、vuex


概念:专门在 Vue 中实现集中式状态(数据)管理的一个 Vue 插件,对 vue 应
用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方
式,且适用于任意组件间通信。

Vuex 工作原理图

image.png

state

是vuex管理的状态对象,他应该是唯一的

actions

值为一个对象,包含多个响应用户动作的回调函数
通过 commit( )来触发 mutation 中函数的调用, 间接更新 state
如何触发 actions 中的回调?
在组件中使用: $store.dispatch('对应的 action 回调名') 触发
可以包含异步代码(定时器, ajax 等)

mutations

值是一个对象,包含多个直接更新 state 的方法
谁能调用 mutations 中的方法?如何调用?
在 action 中使用:commit('对应的 mutations 方法名') 触发
mutations 中方法的特点:不能写异步代码、只能单纯的操作 state

getters

值为一个对象,包含多个用于返回数据的函数
如何使用?—— $store.getters.xxx

modules

  1. 包含多个 module
  2. 一个 module 是一个 store 的配置对象
  3. 与一个组件(包含有共享数据)对应

六、vue-router


vue 的一个插件库,专门用来实现 SPA 应用

路由的理解

  1. 一个路由就是一组映射关系(key - value)
  2. key 为路径, value 可能是 function 或 component
  1. 理解:value 是 function, 用于处理客户端提交的请求。
  2. 工作过程:服务器接收到一个请求时, 根据请求路径找到匹配的函数
    来处理请求, 返回响应数据。
    前端路由:
  3. 理解:value 是 component,用于展示页面内容。
  4. 工作过程:当浏览器的路径改变时, 对应的组件就会显示。

编写使用路由的 3 步

  1. 定义路由组件
  2. 注册路由
  3. 使用路由

七、Vue UI 组件


移动端常用 UI 组件库

  1. Vant https://youzan.github.io/vant
  2. Cube UI https://didi.github.io/cube-ui
  3. Mint UI http://mint-ui.github.io

PC 端常用 UI 组件库

  1. Element UI https://element.eleme.cn
  2. IView UI https://www.iviewui.c
上一篇 下一篇

猜你喜欢

热点阅读