首页 > 代码库 > vuejs点滴
vuejs点滴
1.vuejs简介 vue到底是什么?
一个mvvm框架(库)、和angular类似 比较容易上手、小巧官网:http://cn.vuejs.org/
手册: http://cn.vuejs.org/api/
2.vuejs与angular的区别。
vue:
简单、易学,指令以 v-xxx,一片html代码配合上json,在new出来vue实例,个人维护项目 ,适合: 移动端项目,小巧
vue的发展势头很猛,github上start数量已经超越angular,
angular: 指令以 ng-xxx,所有属性和方法都挂到$scope身上,angular由google维护 ,,合适: pc端项目
angular展示一条基本数据: var app=angular.module(‘app‘,[]); app.controller(‘xxx‘,function($scope){ //C $scope.msg=‘welcome‘ }) html: div ng-controller="xxx" {{msg}}
共同点: 不兼容低版本IE
3.简单的代码。
<div id="box"> {{msg}} </div> var c=new Vue({ el:‘#box‘, //选择器 class tagName data:{ msg:‘welcome vue‘ } });
4.常用指令:
angular:
ng-model ng-controller
ng-repeat
ng-click
ng-show
5.vue常用指令
v-model 一般表单元素(input) 双向数据绑定
6.循环:
v-for="name in arr"
{{$index}}
v-for="name in json"
{{$index}} {{$key}}
v-for="(k,v) in json"
7.事件:
v-on:click="函数"
v-on:click/mouseout/mouseover/dblclick/mousedown.....
new Vue({
el:‘#box‘,
data:{ //数据
arr:[‘apple‘,‘banana‘,‘orange‘,‘pear‘],
json:{a:‘apple‘,b:‘banana‘,c:‘orange‘}
},
methods:{
show:function(){ //方法
alert(1);
}
}
});
8.
显示隐藏:
v-show=“true/false”
bootstrap+vue简易留言板(todolist):
bootstrap: css框架 跟jqueryMobile一样
只需要给标签 赋予class,角色
依赖jquery
9.
事件:
v-on:click/mouseover......
简写的:
@click="" 推荐
事件对象:
@click="show($event)"
事件冒泡:
阻止冒泡:
a). ev.cancelBubble=true;
b). @click.stop 推荐
默认行为(默认事件):
阻止默认行为:
a). ev.preventDefault();
b). @contextmenu.prevent 推荐
键盘:
@keydown $event ev.keyCode
@keyup
常用键:
回车
a). @keyup.13
b). @keyup.enter
上、下、左、右
@keyup/keydown.left
@keyup/keydown.right
@keyup/keydown.up
@keyup/keydown.down
.....
10.
属性:
v-bind:src=""
width/height/title....
简写:
:src="" 推荐
<img src="http://www.mamicode.com/{{url}}" > 效果能出来,但是会报一个404错误
<img v-bind:src="http://www.mamicode.com/url" > 效果可以出来,不会发404请求
11.
class和style:
:class="" v-bind:class=""
:style="" v-bind:style=""
:class="[red]" red是数据
:class="[red,b,c,d]"
:class="{red:a, blue:false}"//data中只有a没有red之类的。
:class="json"
data:{
json:{red:a, blue:false}//推荐
}
--------------------------
style:
:style="[c]"
:style="[c,d]"
注意: 复合样式,采用驼峰命名法
:style="json"
12.
模板:
{{msg}} 数据更新模板变化
{{*msg}} 数据只绑定一次
{{{msg}}} HTML转意输出
13.
过滤器:-> 过滤模板数据
系统提供一些过滤器:
{{msg| filterA}}
{{msg| filterA | filterB}}
uppercase eg: {{‘welcome‘| uppercase}}
lowercase
capitalize
currency 钱
{{msg| filterA 参数}}
14.
get: 获取一个普通文本数据: this.$http.get(‘aa.txt‘).then(function(res){ alert(res.data); },function(res){ alert(res.status); }); 给服务发送数据:√ this.$http.get(‘get.php‘,{ a:1, b:2 }).then(function(res){ alert(res.data); },function(res){ alert(res.status); }); post: this.$http.post(‘post.php‘,{ a:1, b:20 },{ emulateJSON:true }).then(function(res){ alert(res.data); },function(res){ alert(res.status); }); jsonp: https://sug.so.360.cn/suggest?callback=suggest_so&word=a https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd=a&cb=jshow this.$http.jsonp(‘https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su‘,{ wd:‘a‘ },{ jsonp:‘cb‘ //callback名字,默认名字就是"callback" }).then(function(res){ alert(res.data.s); },function(res){ alert(res.status); });
15.
this.$http({
url:地址
data:给后台提交数据,
method:‘get‘/post/jsonp
jsonp:‘cb‘ //cbName
});
16.
vue生命周期:
钩子函数:
created -> 实例已经创建 √
beforeCompile -> 编译之前
compiled -> 编译之后
ready -> 插入到文档中 √
beforeDestroy -> 销毁之前
destroyed -> 销毁之后
17.
用户会看到花括号标记:
v-cloak 防止闪烁, 比较大段落
看这篇博客:http://www.cnblogs.com/cjlll/p/6077430.html
----------------------------------
<span>{{msg}}</span> -> v-text
{{{msg}}} -> v-html
18.
计算属性的使用:
computed:{
b:function(){ //默认调用get
return 值
}
}
--------------------------
computed:{
b:{
get:
set:
}
}
* computed里面可以放置一些业务逻辑代码,一定记得return
19.
vue实例简单方法:
vm.$el -> 就是元素
vm.$data -> 就是data
vm.$mount -> 手动挂在vue程序
vm.$options -> 获取自定义属性
vm.$destroy -> 销毁对象
vm.$log(); -> 查看现在数据的状态
20.
循环:
v-for="value in data"
会有重复数据?
track-by=‘索引‘ 提高循环性能
track-by=‘$index/uid‘
21.
过滤器: vue提供过滤器: capitalize uppercase currency.... debounce 配合事件,延迟执行 数据配合使用过滤器: limitBy 限制几个 limitBy 参数(取几个) limitBy 取几个 从哪开始 filterBy 过滤数据 filterBy ‘谁’ orderBy 排序 orderBy 谁 1/-1 1 -> 正序 2 -> 倒序 自定义过滤器: model ->过滤 -> view Vue.filter(name,function(input){ });
22.
@keydown.up
@keydown.enter
@keydown.a/b/c....
自定义键盘信息:
Vue.directive(‘on‘).keyCodes.ctrl=17;
Vue.directive(‘on‘).keyCodes.myenter=13;
23.
自定义元素指令:(用处不大)
Vue.elementDirective(‘zns-red‘,{
bind:function(){
this.el.style.background=‘red‘;
}
});
24.
监听数据变化:
vm.$el/$mount/$options/....
vm.$watch(name,fnCb); //浅度
vm.$watch(name,fnCb,{deep:true}); //深度监视
vuejs点滴