事件:

  事件冒泡行为:

    1、@click="show($event)"

      show:function (ev) {

        ev.cancelBubble=true;

      }

     2、@click.stop="show()"

  事件捕获行为:

    <div v-on:click.capture="doThis">...</div>

  连用:<a v-on:click.stop.prevent="doThat"></a>

  事件默认行为:

    1、ev.preventDefault();

    2、@contextmenu.prevent

   键盘事件行为:

    1、@keydown  可以有 $event ev.keycode

    2、@keyup

    3、回车键@keyup.13或者@keyup.enter;@keydown.13,@keydown.enter

      同理有上下左右键up,down,left,right.还有space,esc,delete,tab

属性:

    v-bind:src=""   width/height/title等

    简写::src=""

    <img :src="url" alt=">

    class与style:

      :class   v-bind:class=""

      :style   v-bind:style=""

      :class="[r,b,c]" r,b,c是data中的数据

      :class="[r]"

      :class="{r:true}"添加上class

      :class="{r:false,b:true}"没添加上class r,只添加了b

 模板:

    {{msg}}  数据更新模板变化

    {{*msg}} 数据只绑定一次

    {{{msg}}} HTML转义输出

过滤器:

    在1.0中系统提供一些过滤器:

    capitalize,uppercase,lowercase,currency 表示钱,debounce:配合事件,延迟执行  ,json:转化为json格式。

   在2.0中内置过滤器全部删除了。

例:   new Vue({

      el:'#box',

      data:{

        a:{name:'strive',age:'18'}

      }

    });

    <div id="#box">

      {{a |json}}

    </div>

     例: {{'welcome'|capitalize}} {{'welcome'|uppercase}} {{'WELCOME'|lowercase|capitalize}}

      {{ message | filterA }}

      {{ message | filterA | filterB }}       

      {{msg|currency '参数' }}

     例: {{12|currency '¥'}} 结果 ¥12.00

        {{12|currency}} 结果 $12.00

   例: <input type='text' @keyup="show | debounce 1000">表示1000毫秒后执行函数show();

    数据配合使用过滤器:

    limitBy:限制几个

    使用:limitBy 参数  ------>一个参数表示限制几个

       limitBy 参数 参数 ------>两个参数,第一个表示限制几个,第二个表示开始位置

    例:<li v-for="val in arr |limitBy 2">{{val}}</li>//显示前两个

    <li v-for="val in arr |limitBy 2 1">{{val}}</li>//从第二个开始显示到第三个

      

    filterBy 参数 过滤数据

    <li v-for="val in arr |filterBy 'a'">{{val}}</li>//如果arr数组中包含["background","blue","apple","red"],则会输出 background,apple

    orderBy 参数 排序

     orderBy 1从小到大排序 即正序

     orderBy -1倒序

   

    自定义过滤器1.0:

    Vue.filter('名称',function(input,a,b){

      return ;

    });

    例:{{input| toDo a b}}

    Vue.filter('toDo',function(a,b){});

    Vue.filter('date',function (input) {
      var oDate=new Date(input*1000);
      return oDate.getFullYear()+'-'+oDate.getMonth()+1+'-'+oDate.getDate()+' ''+oDate.getHours()+':'+oDate.getMinutes()+':'+oDate.getSeconds();
    });

    自定义过滤器2.0:

   {{input| toDo (a, b)}}

    

交互:

  需要引入vue-resource.js,  ajax  php

  this.$php.get()/post()/jsonp()

  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);
    });

  this.$http({

    url:地址

    data:给后台提交数据

    method:默认'get',可以添加'post'/'jsonp'

    jsonp:'cb' //cbName

    });

vue的生命周期:

  钩子函数:1.0

    create:实例已经创建

    beforeCompile:编译之前

    compiled:编译之后

    ready:插入到文档中

    beforeDestroy:销毁之前

    Destroyed:销毁之后

  在2.0中变化:

    beforeCreate 组件刚刚被创建,属性都没有

    created  实例已经创建完成,属性已经绑定

    beforeMount  编译模板之前

    mounted  编译模板之后

    beforeUpdate  组件更新之前

    updated  组件更新之后

    beforeDestroy  组件销毁之前

    destroyed  组件销毁之后

用户会看到花括号:

  1、 v-cloak :防止闪烁。比较大的段落中使用。添加到标签中类似属性

    在style中将v-cloak属性 display:none;

  2、用v-text代替{{}}

  3、用v-html代替{{{}}}

----------------------------------------------------------------------------

计算属性的使用:

  data:{
    t1:'',
  },
  computed:{
    t2:function () {//默认为get方法
      return t1+"bbbb";
    }
  }, 

  t2也是属性,computed中放置业务逻辑代码,return 值很重要

  computed:{
    t2:{

      get:function(){

        return t1+"bb";

      },

      set:function(){

        this.t1='aaaa'

      }
     
    }
  },

---------------------------------------------------------------------

vue实例:

  var vm=new Vue({});

  vm.$el:元素

  vm.$data:就是数据data

  vm.$mount:手动挂载vue程序

  vm.$options.aabb:aabb为自定义属性,options专门调用自定义属性

  vm.$destroy:销毁对象

  vm.$log():查看现在数据的状态

--------------------------------------------------------

关于循环:

  v-for="value in data" 

 在vue 1.0中value会有重复数据 ,当需要加载重复数据是,需要加track-by='索引' 可以提供循环性能

  例如<li v-for="(value,index) in arr" track-by="index">

  在2.0中for循环默认会把重复数据加载出来。

自定义指令:

    Vue.directive(指令名称(red),function(参数el){

      this.el:原生的DOM元素

    });

    <div v-red="参数"></div>

    指令名称:v-red ----->写成red

自定义元素指令:用处不大

    Vue.elementDirective(元素名称,{bind:function(){}});

自定义键盘指令1.0中:

  Vue.directive('on').keyCodes.ctrl=17//自定义ctrl键,通过@keyup.ctrl=""来使用

在2.0中:Vue.comfig.keyCodes.ctrl=17;

监听数据变化:

  vm.$el/$mount/$options/...

  vm.$watch(name,fncb);浅度

  vm.$watch(name.fncb,{deep:true});//深度监视

---------------------------------------------------

vue过渡动画:

  本质是css3:transition,animation

  <div id="div1" v-show="bSign" transition="fade"></div>

 动画:

名称规定: .fade-transition{

          transition: 1s all ease;

         }

   进入动画: .fade-enter{

          opacity:0;

         }

   退出动画: .fade-leave{

          opacity:0;

        }

-----------------------------------------------

vue组件:  

  全局组件:

    组件里面放数据,函数必须返回一个对象json。注意要确保在初始化根实例之前注册了组件:

    Vue.component('my-component',{

      data(){

        return {msg:'A custom component!'}

      },

      methods:{

        change(){

          this.msg='hello';

        }

      }

      template: '<div @click="change" v-text="msg"></div>'

    });

    new Vue({

      el:'#box'

    })

  使用:<my-component><my-component/>

 

   

   局部组件: 通过使用组件实例选项注册,可以使组件仅在另一个实例/组件的作用域中可用:

    var Child = {
      template: '<div>A custom component!</div>'
    }

    new Vue({

      el:'#box',

      components:{

        'my-component':Child

      }

    });

-------------------------------------------------------

配合模板使用:

 方式一: 

<script type="x-template" id="aaa">
<h2 @click="change" v-text="msg"></h2>
<ul>
<li>1111</li>
<li>1111222</li>
<li>111333</li>
li>4444</li>
</ul>
</script>

 方式二: 

    <template id="aaa">
<ul>
<li v-for="value in arr"></li>
</ul>
</template>
new Vue({
el:'#box',
components:{
'my-component':{
data(){
return {
msg:'A custom component!',
arr:['aa','bb','cc']
}
},
       methods:{
change(){
this.msg='hello';
}
},
template: '#aaa'
}
}
});

   动态组件:

      <component :is="组件名称"></component> 

vue.js笔记1.0的更多相关文章

  1. vue.js笔记总结

    一份不错的vue.js基础笔记!!!! 第一章 Vue.js是什么? Vue(法语)同view(英语) Vue.js是一套构建用户界面(view)的MVVM框架.Vue.js的核心库只关注视图层,并且 ...

  2. 珠峰2016,第9期 vue.js 笔记部份

    在珠峰参加培训好年了,笔记原是记在本子上,现在也经不需要看了,搬家不想带上书和本了,所以把笔记整理下,存在博客中,也顺便复习一下 安装vue.js 因为方便打包和环境依赖,所以建意npm  init  ...

  3. vue.js笔记

    一.v-bind 缩写 <!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> &l ...

  4. Vue.js笔记 — vue-router路由懒加载

    用vue.js写单页面应用时,会出现打包后的JavaScript包非常大,影响页面加载,我们可以利用路由的懒加载去优化这个问题,当我们用到某个路由后,才去加载对应的组件,这样就会更加高效,实现代码如下 ...

  5. Vue.js 笔记之 img src

    固定路径(原始html) index.html如下,其中,引号""里面就是图片的路径地址 ```<img src="./assets/1.png"> ...

  6. 奇舞js笔记——第0课——如何写好原生js代码

    摘要 1.好的代码职责要清晰,javscript不要用来操作样式: 2.API要设计的合理:通用性,适度的抽象(数据抽象,过程抽象),可扩展性: 3.效率问题:用好的.合适的算法(前端程序员要把自己当 ...

  7. vue.js 笔记

    <!-- 多层for循环 --> <ul> <li v-for="(ite,key) in list2"> {{key}}-------{{it ...

  8. node npm vue.js 笔记

    cnpm 下载包的速度更快一些. 地址:http://npm.taobao.org/ 安装cnpm: npm install -g cnpm --registry=https://registry.n ...

  9. 窥探Vue.js 2.0 - Virtual DOM到底是个什么鬼?

    引言 你可能听说在Vue.js 2.0已经发布,并且在其中新添加如了一些新功能.其中一个功能就是"Virtual DOM". Virtual DOM是什么 在之前,React和Em ...

随机推荐

  1. NOI2015品酒大会 后缀数组

    自己尝试敲后缀数组,发现难看(tiao)的不行,于是抄了板子 考虑建出hei以后转化出的问题: 对于一个数组中权值大于等于k的连续部分,求取两个数的方案数和两数积的最大值 (好气啊,可以有负数) 把询 ...

  2. NET Core+MySql+Nginx

    NET Core+MySql+Nginx 容器化部署 .NET Core容器化@Docker.NET Core容器化之多容器应用部署@Docker-Compose.NET Core+MySql+Ngi ...

  3. 通过sqlserver sa密码修改windows操作系统密码

    如果你不记得windows管理员的密码了,但知道sqlserver sa用户的密码,可以通过以下方式修改: 进入SQL之后执行以下语句: -- 允许配置高级选项  EXEC sp_configure ...

  4. SSM Spring SpringMVC Mybatis框架整合Java配置完整版

    以前用着SSH都是老师给配好的,自己直接改就可以.但是公司主流还是SSM,就自己研究了一下Java版本的配置.网上大多是基于xnl的配置,但是越往后越新的项目都开始基于JavaConfig配置了,这也 ...

  5. java获取服务器一些信息的方法

    request.getServletContext().getRealPath("/") 获取项目所在服务器的全路径,如:D:\Program Files\apache-tomca ...

  6. 基于Java实现的快速排序

    简述 快速排序是一种排序执行效率很高的排序算法,它利用分治法来对待排序序列进行分治排序,它的思想主要是通过一趟排序将待排记录分隔成独立的两部分,其中的一部分比关键字小,后面一部分比关键字大,然后再对这 ...

  7. 超文本传输协议(HTTP)

    超文本传输协议(HyperText Transfer Protocol,Http)是从服务器传输数据到客户端的传输协议. HTTP协议的主要特点可概括如下: 1.支持客户/服务器模式. 2.简单快速: ...

  8. Java运算符、引用数据类型、流程控制语句

    1运算符 1.1算术运算符 运算符是用来计算数据的符号. 数据可以是常量,也可以是变量. 被运算符操作的数我们称为操作数. 算术运算符最常见的操作就是将操作数参与数学计算: 运算符 运算规则 范例 结 ...

  9. Spring的七种事务传播机制

    概述 当我们调用一个基于Spring的Service接口方法(如UserService#addUser())时,它将运行于Spring管理的事务环境中,Service接口方法可能会在内部调用其它的Se ...

  10. postgresql 存储过程动态插入数据 2

    最近学习postgresql,正一个小活要用上,所以就开始学习了!然而,学习的过程极其艰辛,但却也充满了乐趣. 一般来说数据库的操作不外如何增,删,改,查,而首要的就是要添加数据到数据库中,因为以前的 ...