uRick's PKM uRick's PKM
首页
导航
  • Java
  • 数据库
书单
  • 优质好文
  • 有趣的工具
  • 分类
  • 标签
  • 归档
关于
首页
导航
  • Java
  • 数据库
书单
  • 优质好文
  • 有趣的工具
  • 分类
  • 标签
  • 归档
关于
  • JavaScript基础
  • Vue基础
    • 1. 简介
    • 2. 基本使用
    • 3. Vue选项
      • 3.1. el
      • 3.2. data
      • 3.3. methods
      • 3.4. computed
      • 3.5. watch
    • 4. 生命周期方法
    • 5. 动画过渡
    • 6. 内置指令
    • 7. 自定义指令
  • 一文搞懂HTTP基础
  • web
uRick
2020-04-09
目录

Vue基础

# 1. 简介

一位华裔前Google工程师(尤雨溪)开发的前端js库

  • 作用: 动态双向绑定构建用户界面
  • 特点:
  • 遵循MVVM模式
  • 编码简洁, 体积小, 运行效率高, 移动/PC端开发
  • 它本身只关注UI, 可以轻松引入vue插件和其它第三库开发项目,核心库的基础上有许多第三方库
  • 与其它框架的关联:
  • 借鉴angular的模板和数据绑定技术
  • 借鉴react的组件化和虚拟DOM技术
  • vue包含一系列的扩展插件(库):
  • vue-cli: vue脚手架
  • vue-resource(axios): ajax请求
  • vue-router: 路由
  • vuex: 状态管理
  • vue-lazyload: 图片懒加载
  • vue-scroller: 页面滑动相关
  • mint-ui: 基于vue的组件库(移动端)
  • element-ui: 基于vue的组件库(PC端)

# 2. 基本使用

  1. 引入vue.js
  2. 创建Vue实例对象(vm), 指定选项(配置)对象 el : 指定dom标签容器的选择器(div id值) data : 指定初始化状态数据的对象/函数(返回一个对象)
  3. 在页面模板中使用{{}}或vue指令

# 3. Vue选项

# 3.1. el

指定dom标签容器的选择器 Vue就会管理对应的标签及其子标签

<div id="example">
</div>
new Vue({ el: '#example' });
1
2
3

# 3.2. data

定义Vue数据 对象或函数类型 指定初始化状态属性数据的对象 vm也会自动拥有data中所有属性 页面中可以直接访问使用(双向绑定) 数据代理: 由vm对象来代理对data中所有属性的操作(读/写)

# 3.3. methods

包含多个方法的对象 供页面中的事件指令来绑定回调,页面事件可以通过指令绑定 回调函数默认有event参数, 但也可以指定自己的参数 所有的方法由vue对象来调用, 访问data中的属性直接使用 this.xxx

# 3.4. computed

包含多个方法的对象 对状态属性进行计算返回一个新的数据, 供页面获取显示 一般情况下是相当于是一个只读的属性 利用set/get方法来实现属性数据的计算读取, 同时监视属性数据的变化

如何给对象定义get/set属性: 在创建对象时指定: get name () {return xxx} / set name (value) {} 对象创建之后指定: Object.defineProperty(obj, age, {get(){}, set(value){}})

回调函数是什么? 你定义了,你没调用,但是最终执行了;

Vue 表达式缓存:{{}} 表达式获取数据时,会从会从缓存中存取;缓存没有值在获取计算的值;

# 3.5. watch

包含多个属性监视的对象 分为一般监视和深度监视

// xxx为需要监视的属性
  xxx: function(value){}
	xxx : {
		deep : true,
		handler : fun(value)
	}
// 侦听器,data 中存在的数据,当然computed也起做监视的作用
	watch: {
		testText: function() {
			alert("232323");
		}
	}
1
2
3
4
5
6
7
8
9
10
11
12

另一种添加监视方式: vm.$watch('xxx', function(value){})

# 4. 生命周期方法

生命周期示图 (opens new window)

  • 初始化步骤

    • beforeCreate()
    • created()
    • beforeMount()
    • mounted()
  • 更新状态: this.xxx = value

    • beforeUpdate()
    • updated()
  • 销毁 vue 实例: vm.$destory()

    • beforeDestory()
    • destoryed()
  • 常用的生命周期方法

    • created()/mounted(): 发送 ajax 请求, 启动定时器等异步任务
    • beforeDestory(): 做收尾工作, 如: 清除定时器

# 5. 动画过渡

利用vue去操控css的transition/animation动画 模板: 使用<transition name='xxx'>包含带动画的标签

css样式
.fade-enter-active: 进入过程, 指定进入的transition
.fade-leave-active: 离开过程, 指定离开的transition
.xxx-enter, .xxx-leave-to: 指定隐藏的样式
编码例子
.xxx-enter-active, .xxx-leave-active {
  transition: opacity .5s
}
.xxx-enter, .xxx-leave-to {
  opacity: 0
}

<transition name="xxx">
  <p v-if="show">hello</p>
</transition>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

# 6. 内置指令

v-text/v-html: 指定标签体
    * v-text : 当作纯文本
	* v-html : 将value作为html标签来解析
v-if v-else v-show: 显示/隐藏元素
	* v-if : 如果vlaue为true, 当前标签会输出在页面中
	* v-else : 与v-if一起使用, 如果value为false, 将当前标签输出到页面中
	* v-show: 就会在标签中添加display样式, 如果vlaue为true, display=block, 否则是none
v-for : 遍历
	* 遍历数组 : v-for="(person, index) in persons"   
	* 遍历对象 : v-for="value in person"   $key
v-on : 绑定事件监听
	* v-on:事件名, 可以缩写为: @事件名
	* 监视具体的按键: @keyup.keyCode   @keyup.enter
	* 停止事件的冒泡和阻止事件默认行为: @click.stop   @click.prevent
	* 隐含对象: $event
v-bind : 强制绑定解析表达式  
	* html标签属性是不支持表达式的, 就可以使用v-bind
	* 可以缩写为:  :id='name'
	* :class
		* :class="a"
		* :class="{classA : isA, classB : isB}"
		* :class="[classA, classB]"
	* :style
		:style="{color : color}"
v-model
	* 双向数据绑定
	* 自动收集用户输入数据
ref : 标识某个标签
	* ref='xxx'
	* 读取得到标签对象: this.$refs.xxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

# 7. 自定义指令

  1. 注册全局指令
Vue.directive('my-directive', function(el, binding){
    el.innerHTML = binding.value.toUpperCase()
})
1
2
3
  1. 注册局部指令
directives : {
    'my-directive' : function(el, binding) {
        el.innerHTML = binding.value.toUpperCase()
    }
}
1
2
3
4
5
  1. 使用指令
<div v-my-directive='xxx'>
1
#Vue#前端
上次更新: 2023/01/18, 02:33:51
JavaScript基础
一文搞懂HTTP基础

← JavaScript基础 一文搞懂HTTP基础→

最近更新
01
从0到1:开启商业与未来的秘密
11-26
02
如何阅读一本书: 读懂一本书,精于一件事
10-25
03
深入理解Lambda
06-27
更多文章>
Theme by Vdoing | Copyright © 2019-2024 uRick | CC BY 4.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式