Vue.js(0)

特點:

   輕量級,高效率,上手快,簡單易學,文檔簡介全面
   一套構建用戶界面的漸進式框架。
功能
  模板渲染,模塊化,擴展功能(路由和ajax等) 
簡介
 輕量級的前端界面框架,
 2016.10發佈新的2.0版本,更強單,更快速
  • 數據渲染/數據同步
  • 組件化/模塊化
  • 路由,ajax,數據流

學習資源
cn.vue.js.org
github.com/vue.js/vue
github.com/vuejs

入門

  1. Vue實例對象
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <p>{{ message }}</p>
</div>

<script>
new Vue({    //構造函數
  el: '#app',     //構造參數
  data: {    //參數選項
    message: 'Hello Vue.js!'
  }
})
</script>
</body>
</html>

= 樹形結構關係
2. Vue實例的生命週期

  1. Vue的組件註冊和結構

4.Vue的基本概念

  • 全局api :
  • 實例選項 ()
  • 實例屬性/方法 ($開頭)
  • 指令
  • 內置組件

Vue的基本用法

  • 文本渲染

變量如何渲染到屬性裏?
2.0版本下, v-bind指令(<=> :[property])
模板渲染的方法

  • {{ [變量] }}
  • v-html="[變量]" //會解析標籤
  • v-text="[變量]" // 原字符輸出
循環 v-for:
  • 列表渲染
<div>
   <ul>
         <li v-for= "(item,index) in list"  :class="odd:index%2">{{   item.name   }}  -- {{   item.price   }}  -- {{   index   }}</li>
        //list的數據格式是:list:[ { name:"apple", price: 12}  {,name:"banana",price: 15} ]
        // class="odd:index%2"   該項表示爲奇數增加odd類
   </ul>
</div>

渲染對象 循環
//objList:{ name:‘Lebron’,price:33,rank:likers }
將屬性循環顯示出來

<div>
<ul>
  <li  v-for= "(value,key) in objList"> {{ key + value   }}  </li>
</ul>
</div>

循環渲染組件
引入組件後
將v-for寫入就行

雙向綁定(數組的動態更新)

會觸發列表更新的方法:push(),pop(),shift(),unshift(),splice(),sort(),reverse(),
不會觸發的:filter(),concat(),slice(); 爲其中某一項複製,
改變數組的長度,不會更新,如果要改變某一項的值,並更新 ,可以使用Vue.set(this.list,1,{}) 修改。


Vue 標籤屬性與條件渲染

1.綁定屬性
v-bind:href="" v-bind:title
縮寫爲 :href="" :title=""
該綁定爲動態綁定,當綁定的值被修改時,標籤的屬性也會同步更新
v-bind:class
v-bind:class 和普通的class不會衝突,會兼容顯示。
可以給class綁定一個對象,
2.條件渲染
v-if="[bool型變量]" 不顯示是真正的消失
v-show="[bool型變量]" 通過display屬性控制
v-else 與上邊兩個命令配合使用


vue事件綁定和表單

1.事件綁定
v-on:click="[方法名]" 縮寫爲 @click="[方法名]"

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <button v-on:click="counter += 1">增加 1</button>
  <p>這個按鈕被點擊了 {{ counter }} 次。</p>
</div>

<script>
new Vue({
  el: '#app',
  data: {
    counter: 0
  }
})
</script>
</body>
</html>

事件修飾符
Vue.js 爲 v-on 提供了事件修飾符來處理 DOM 事件細節,如:event.preventDefault() 或 event.stopPropagation()。

Vue.js通過由點(.)表示的指令後綴來調用修飾符。

.stop
.prevent
.capture
.self
.once

.enter
.tab
.delete (捕獲 “刪除” 和 “退格” 鍵)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta
實例

自定義事件

  1. 表單事件綁定
  • v-model 指令在表單控件元素上創建雙向數據綁定。
<input v-model="message" placeholder="編輯我……">
  <p>消息是: {{ message }}</p>    
  • 複選框
    v-model 綁定同一個值
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 測試實例 - 菜鳥教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
<p>單個複選框:</p>
<input type="checkbox" id="checkbox" v-model="checked">
<label for="checkbox">{{ checked }}</label>
  
<p>多個複選框:</p>
<input type="checkbox" id="runoob" value="Runoob" v-model="checkedNames">
<label for="runoob">Runoob</label>
<input type="checkbox" id="google" value="Google" v-model="checkedNames">
<label for="google">Google</label>
<input type="checkbox" id="taobao" value="Taobao" v-model="checkedNames">
<label for="taobao">taobao</label>
<br>
<span>選擇的值爲: {{ checkedNames }}</span>
</div>

<script>
new Vue({
el: '#app',
data: {
  checked : false,
  checkedNames: []
}
})
</script>
</body>
</html>
  • 單選框
<div id="app">
<input type="radio" id="runoob" value="Runoob" v-model="picked">
<label for="runoob">Runoob</label>
<br>
<input type="radio" id="google" value="Google" v-model="picked">
<label for="google">Google</label>
<br>
<span>選中值爲: {{ picked }}</span>
</div>

<script>
new Vue({
el: '#app',
data: {
  picked : 'Runoob'
}
})
</script>
  • select 列表
    以下實例中演示了下拉列表的雙向數據綁定:
<div id="app">
  <select v-model="selected" name="fruit">
    <option value="">選擇一個網站</option>
    <option value="www.runoob.com">Runoob</option>
    <option value="www.google.com">Google</option>
  </select>
 
  <div id="output">
      選擇的網站是: {{selected}}
  </div>
</div>
 
<script>
new Vue({
  el: '#app',
  data: {
    selected: '' 
  }
})
</script>

  • 表單修改器
    .lazy //完成輸入時,纔會更新值
    .number //轉換類型
    .trim

計算屬性和數據監聽

-計算屬性
computed: {
calculate (){
return this.myValue.replace()
}
}
原屬性不更新,計算的屬性結果就不會更新

  • 監聽數據變化
    watch:{
    myValue: function(val,oldvalue){ //key值爲要監聽的變量,value爲要執行的方法

      }
    

    }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章