Vue入门学习笔记【基本概念、对象、过滤器、指令等】


Posted in Javascript onApril 13, 2019

本文实例讲述了Vue入门基本概念与使用。分享给大家供大家参考,具体如下:

1. Vue.js是什么?

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

2). 作用: 动态构建用户界面

3). 特点:

* 遵循MVVM模式
* 编码简洁, 体积小, 运行效率高, 移动/PC端开发
* 它本身只关注UI, 可以轻松引入vue插件和其它第三库开发项目

4). 与其它框架的关联:

* 借鉴angular的模板和数据绑定技术
* 借鉴react的组件化和虚拟DOM技术

5). 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标签容器的选择器
data : 指定初始化状态数据的对象/函数(返回一个对象)

3). 在页面模板中使用{{}}或vue指令

3. Vue对象的选项

1). el

指定dom标签容器的选择器

Vue就会管理对应的标签及其子标签

2). data

对象或函数类型

指定初始化状态属性数据的对象

vm也会自动拥有data中所有属性

页面中可以直接访问使用

数据代理: 由vm对象来代理对data中所有属性的操作(读/写)

3). methods

包含多个方法的对象

供页面中的事件指令来绑定回调

回调函数默认有event参数, 但也可以指定自己的参数

所有的方法由vue对象来调用, 访问data中的属性直接使用this.xxx

4). computed

包含多个方法的对象

对状态属性进行计算返回一个新的数据, 供页面获取显示

一般情况下是相当于是一个只读的属性

利用set/get方法来实现属性数据的计算读取, 同时监视属性数据的变化

如何给对象定义get/set属性

在创建对象时指定:

get name () {return xxx} / set name (value) {}

对象创建之后指定:

Object.defineProperty(obj, age, {get(){}, set(value){}})

5). watch

包含多个属性监视的对象

分为一般监视和深度监视

'xxx' : {
    deep : true,
    handler : fun(value)
}

另一种添加监视方式:

vm.$watch('xxx', funn)

4. 过渡动画

利用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>

5. 生命周期

vm/组件对象

生命周期图

主要的生命周期函数(钩子)

created() / mounted(): 启动异步任务(启动定时器,发送ajax请求, 绑定监听)
beforeDestroy(): 做一些收尾的工作

6. 自定义过滤器

1). 理解

对需要显示的数据进行格式化后再显示

2). 编码

1). 定义过滤器

Vue.filter(filterName, function(value[,arg1,arg2,...]){
 // 进行一定的数据处理
 return newValue
})

2). 使用过滤器

<div>{{myData | filterName}}</div>
<div>{{myData | filterName(arg)}}</div>

7. vue内置指令

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

8. 自定义指令

1). 注册全局指令

Vue.directive('my-directive', function(el, binding){
 el.innerHTML = binding.value.toUpperCase()
})

2). 注册局部指令

directives : {
 'my-directive' : function(el, binding) {
   el.innerHTML = binding.value.toUpperCase()
 }
}

3). 使用指令

<div v-my-directive='xxx'>

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
新老版本juqery获取radio对象的方法
Mar 01 Javascript
自用js开发框架小成 学习js的朋友可以看看
Nov 16 Javascript
Jquery通过Ajax方式来提交Form表单的具体实现
Nov 07 Javascript
DIV始终居中的js代码
Feb 17 Javascript
JavaScript也谈内存优化
Jun 06 Javascript
Underscore.js常用方法总结
Feb 28 Javascript
拥有一个属于自己的javascript表单验证插件
Mar 24 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
JS中如何实现Laravel的route函数详解
Feb 12 Javascript
JavaScript通过filereader接口读取文件
May 10 Javascript
Angular5中调用第三方js插件的方法
Feb 26 Javascript
swiper在vue项目中loop循环轮播失效的解决方法
Sep 15 Javascript
JS+CSS3实现的简易钟表效果示例
Apr 13 #Javascript
JS实现倒序输出的几种常用方法示例
Apr 13 #Javascript
JS实现马赛克图片效果完整示例
Apr 13 #Javascript
ES6入门教程之let、const的使用方法
Apr 13 #Javascript
ES6入门教程之变量的解构赋值详解
Apr 13 #Javascript
微信小程序template模版的使用方法
Apr 13 #Javascript
vue基于viewer实现的图片查看器功能
Apr 12 #Javascript
You might like
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
PHP随机生成唯一HASH值自定义函数
2015/04/20 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
Jquery AJAX 用于计算点击率(统计)
2010/06/30 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
JavaScript获得url所有参数键值表的方法
2015/03/21 Javascript
jQuery时间轴插件使用详解
2015/07/16 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
JS自定义滚动条效果
2020/03/13 Javascript
关于vue的列表图片选中打钩操作
2020/09/09 Javascript
vue+springboot+element+vue-resource实现文件上传教程
2020/10/21 Javascript
Vue获取微博授权URL代码实例
2020/11/04 Javascript
[58:35]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.22
2019/09/05 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
python自动安装pip
2014/04/24 Python
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
Python 使用PIL中的resize进行缩放的实例讲解
2018/08/03 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
英国汽车和货车租赁网站:Hertz英国
2016/09/02 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
用Python匹配HTML tag的时候,<.*>和<.*?>有什么区别
2012/11/04 面试题
优秀党员转正的自我评价
2013/10/06 职场文书
优秀的计算机专业求职信范文
2013/12/27 职场文书
自考生自我评价分享
2014/01/18 职场文书
党员干部批评与自我批评反四风思想汇报
2014/09/21 职场文书
大连导游词
2015/02/12 职场文书
小数乘法教学反思
2016/02/22 职场文书
git stash(储藏)的用法总结
2022/06/25 Servers