Giter Club home page Giter Club logo

vue.js's Introduction

Vue.js 五天 汤小洋

一、 Vue.js简介

1. Vue.js是什么

Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0

  • 是一个构建用户界面的框架
  • 是一个轻量级MVVM(Model-View-ViewModel)框架,和angular、react类似,其实就是所谓的数据双向绑定
  • 数据驱动+组件化的前端开发(核心**)
  • 通过简单的API实现响应式的数据绑定组合的视图组件
  • 更容易上手、小巧

参考:官网

2.vue和angular的区别

2.1 angular

  • 上手较难
  • 指令以ng-xxx开头
  • 所有属性和方法都存储在$scope中
  • 由google维护

2.2 vue

  • 简单、易学、更轻量
  • 指令以v-xxx开头
  • HTML代码+JSON数据,再创建一个vue实例
  • 由个人维护:尤雨溪,华人,目前就职于阿里巴巴,2014.2开源了vue.js库

尤雨溪

共同点:都不兼容低版本IE 对比:GitHub上vue的stars数量大约是angular的两倍

二、起步

1. 下载核心库vue.js

bower info vue
npm init --yes
cnpm install vue --save
版本 v2.3.4 目前最新版本(2017.6.29)

vue2.0和1.0相比,最大的变化就是引入了Virtual DOM(虚拟DOM),页面更新效率更高,速度更快

2. Hello World(对比angular)

2.1 angular实现

js:
	let app=angular.module('myApp',[]);
	app.controller('MyController',['$scope',function($scope){
		$scope.msg='Hello World';
	}]);
html:	
	<html ng-app="myApp">
		<div ng-controller="MyController">
			{{msg}}
		</div>
	</html>

2.2 vue实现

js:
	new Vue({
		el:'#itany', //指定关联的选择器
		data:{ //存储数据
			msg:'Hello World',
			name:'tom'
		}
	});
html:
	<div id="itany">
		{{msg}}
	</div>

3. 安装vue-devtools插件,便于在chrome中调试vue

直接将vue-devtools解压缩,然后将文件夹中的chrome拖放到扩展程序中

//配置是否允许vue-devtools检查代码,方便调试,生产环境中需要设置为false
    Vue.config.devtools=false;
    Vue.config.productionTip=false; //阻止vue启动时生成生产消息

三、 常用指令

1. 什么是指令?

用来扩展html标签的功能
angular中常用的指令:
    ng-model
    ng-repeat
    ng-click
    ng-show/ng-hide
    ng-if

2. vue中常用的指令

  • v-model 双向数据绑定,一般用于表单元素

  • v-for 对数组或对象进行循环操作,使用的是v-for,不是v-repeat 注:在vue1.0中提供了隐式变量,如$index、$key 在vue2.0中去除了隐式变量,已被废除

  • v-on 用来绑定事件,用法:v-on:事件="函数"

  • v-show/v-if
    用来显示或隐藏元素,v-show是通过display实现,v-if是每次删除后再重新创建,与angular中类似

四、 练习:用户管理

使用BootStrap+Vue.js   

五、 事件和属性

1. 事件

1.1 事件简写

v-on:click=""    
简写方式 @click=""

1.2 事件对象$event

包含事件相关信息,如事件源、事件类型、偏移量
target、type、offsetx

1.3 事件冒泡

阻止事件冒泡:
    a)原生js方式,依赖于事件对象
    b)vue方式,不依赖于事件对象
        @click.stop

1.4 事件默认行为

阻止默认行为:
    a)原生js方式,依赖于事件对象

1.5 键盘事件

回车:@keydown.13 或@keydown.enter
上:@keydown.38 或@keydown.up

默认没有@keydown.a/b/c...事件,可以自定义键盘事件,也称为自定义键码或自定义键位别名

1.6 事件修饰符

.stop - 调用 event.stopPropagation()。
.prevent - 调用 event.preventDefault()。
.{keyCode | keyAlias} - 只当事件是从特定键触发时才触发回调。
.native - 监听组件根元素的原生事件。
.once - 只触发一次回调。

2. 属性

2.1 属性绑定和属性的简写

v-bind 用于属性绑定, v-bind:属性=""

属性的简写:
    v-bind:src="" 简写为 :src=""

2.2 class和style属性

绑定class和style属性时语法比较复杂:

六、 模板

1. 简介

Vue.js使用基于HTML的模板语法,可以将DOM绑定到Vue实例中的数据
模板就是{{}},用来进行数据绑定,显示在页面中
也称为Mustache语法

2. 数据绑定的方式

a.双向绑定
    v-model
b.单向绑定    
    方式1:使用两对大括号{{}},可能会出现闪烁的问题,可以使用v-cloak解决
    方式2:使用v-text、v-html

3. 其他指令

v-once 数据只绑定一次
v-pre 不编译,直接原样显示

七、 过滤器

1. 简介

用来过滤模型数据,在显示之前进行数据处理和筛选
语法:{{ data | filter1(参数) | filter2(参数)}}

2. 关于内置过滤器

vue1.0中内置许多过滤器,如:
    currency、uppercase、lowercase
    limitBy
    orderBy
    filterBy
vue2.0中已经删除了所有内置过滤器,全部被废除
如何解决:
    a.使用第三方工具库,如lodash、date-fns日期格式化、accounting.js货币格式化等
    b.使用自定义过滤器

3. 自定义过滤器

分类:全局过滤器、局部过滤器

3.l 自定义全局过滤器

使用全局方法Vue.filter(过滤器ID,过滤器函数)

3.l 自定义局部过滤器

vue.js's People

Stargazers

 avatar  avatar  avatar latermonk avatar  avatar  avatar Kaemi avatar  avatar  avatar  avatar 张中璞 avatar  avatar luzhaoxia avatar  avatar itnan avatar  avatar  avatar  avatar  avatar sunii avatar OrangesChen avatar  avatar yn avatar  avatar  avatar 大官人 avatar  avatar  avatar Qiang avatar 陈乾煜 avatar Allen Shiu avatar  avatar lulululu avatar duanzj avatar lhuoren avatar jipaiSAMA avatar yangshunde avatar  avatar sukie avatar  avatar Rhaast avatar Vinson Sheep avatar  avatar WangYaLi avatar Kiznaiver1998 avatar olleh avatar tianhui avatar klaus avatar Yangshunde avatar  avatar  avatar  avatar  avatar  avatar Jianqiang Qiu avatar lyEWL avatar bluetada avatar liaozq avatar Nails avatar swordfo avatar  avatar 刘雪玲 avatar Garfield Choo avatar  avatar Xuhengfeng avatar  avatar H.Y avatar  avatar Shirley avatar  avatar 又在下雨天 avatar Gavin Yang avatar madeMeCrazier avatar  avatar Openfire avatar  avatar

Watchers

 avatar  avatar luzhaoxia avatar  avatar 喜滋滋 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.