vuejs學習筆記(1)--屬性,事件綁定,ajax

本文轉自:http://www.cnblogs.com/shuai5288/archive/2017/04/05/6670923.html

屬性

v-for 相似於angular中的 ng-repeat ,用於重複生成html片斷;html

複製代碼
<ul id="box">
       <li v-for="(v, i) in list">{{v}}</li>
</ul>

<script>
    var vm = new Vue({
        el: '#box',              // 對應的元素選擇器 或者是 指向元素的變量
        data: {                  // data
            list: [1,2,3]
        }
    });
</script>
複製代碼

也能夠寫成這種形式 v-for='v in list' ,重複的數據也能夠是js對象格式的。vue

 

v-show 與angular中的 ng-show 是同樣的,值爲 true 則顯示,false 則隱藏(display:none)。jquery

v-model 與angular中的 ng-model 同樣,主要用於input元素值的綁定。es6

v-bind: 用於綁定屬性值;ajax

複製代碼
<img v-bind:class="class" v-bind:src="src"/>

<script>
    var vm = new Vue({
        el: '#box',              // 對應的元素選擇器 或者是 指向元素的變量
        data: {                  // data
            class: ['class1','class2'], // 
            src: 'img/1.png'
        }
    });
</script>
複製代碼

這裏的class數據也能夠是對象形式的 {'class1': true, 'class2': false},對象中的key值爲類名,value爲真則應用此類名,不然反之;
還能夠是字符串 'class1' 。json

v-bind: 的簡寫形式,如 v-bind:class 能夠寫成 :class ,  v-bind:src 能夠寫成 :src ,推薦使用簡寫。跨域

事件綁定

vuejs中使用 v-on:click="fn()" 的形式綁定事件:promise

複製代碼
<input type="button" v-on:click="add()">              //

<input type="reset" v-on:click=" username='123' ">   // 也能夠是一條js語句

<input type="button" @click="add($event)">           // @click 是 v-on:click 的簡寫,推薦使用

<input type="text" @click.stop="add($event)">        // .stop 表示阻止冒泡

<input type="text" @click.prevent="add($event)">     // .prevent 表示默認行爲

<input type="text" @keydown.up="add($event)">        // .up 對應鍵盤up鍵

<input type="text" @keydown.left="add($event)">     // .left 對應鍵盤left鍵
<input type="text" @keydown.13="add($event)">       // .13 對應 enter 鍵

<script>
    var vm = new Vue({
        el: '#box',              // 對應的元素選擇器 或者是 指向元素的變量
        data: {                  // data
            username: 'vuejs'
        },
methods: { // 存放事件對應的方法
      add:function(e){}
    } }); </script>
複製代碼

vue 提供多種形式的事件綁定,沒有他作不到,只有你想不到。函數

ajax

vue 自己並無封裝ajax模塊,咱們能夠使用vue的插件 vue-resource.js 來作數據交互;固然也能夠使用 jquery vue-resource

vue-resource.js 的API 與jquery的 ajax 相似,容易上手:

複製代碼
<script src="vue.js"></script>
<script src="vue-resource.js"></script>

<script>
    var vm = new Vue({
        el: '#box',              // 對應的元素選擇器 或者是 指向元素的變量
        data: {                  // data
            username: 'vuejs'
        },
methods: { // 存放事件對應的方法
      get: function(e){
  this.$http.get('url').then(
         function(result){console.log('success')}, // 請求成功的回調函數
           function(result) {console.log('fail')} // 失敗時的回調函數
        )
}
    } }); </script>
複製代碼

$http.get() 返回的是 promise 對象。大白話講解Promise(一)

$http也支持 post(), jsonp()跨域 等方法。 

相關文章
相關標籤/搜索