vue:基礎整理(一)

一.vue的基本代碼

<div id="app">
    <p>{{ msg }}</p>
  </div>

desc:id爲app的元素區域的所有內容,是將來new的vue實例所要控制的

<script>
var vm = new Vue({
	el:'app',
	data:{
		msg:'HelloWorld'
	}
})
</script>

desc:
1.new出來的這個vm對象,就是mvvm中vm的調度者

vue官網截取

2.data:{ }就是mvvm中的M,用來保存每個頁面的數據
3.message:‘HelloWorld’:通過vue指令 v-bind 屬性綁定渲染到頁面,不需要再手動操作dom

二.v-指令

1.v-cloak:解決插值表達式閃爍的問題

<p>{{msg}}</p>
<p v-cloak>{{ msg }}</p>

2.v-text:用於渲染普通文本,會覆蓋元素中原本的內容,但是插值表達式只會替換自己的這個佔位符,不會把整個元素的內容清空。

<div>===={{msg}}===</div>
<div v-text="msg"></div>

3.v-html

<div v-html="msg_html"></div>
<script>
	var vm = new Vue({
		el:'#app',
		data:{
			msg_html:'<h1>HelloWorld</h1>'
		}
	})
</script>

4.v-bind: Vue提供的屬性綁定機制 縮寫是 :

<input type="button" value="按鈕" v-bind:title="mytitle + '123'">

5.v-on:Vue提供的事件綁定機制 縮寫是 @

<input type="button" value="按鈕" :title='myTitle' v-on:click="alert('hello')">
<input type="button" value="按鈕" @click="show">

三.事件修飾符

  1. .stop 阻止冒泡事件
  2. prevent 阻止默認行爲 如標籤的跳轉;表單的提交submit事件
<a href="http://www.baidu.com" @click.prevent="linkClick">有問題,先去百度</a>
  1. .capture 實現捕獲觸發事件的機制;組件嵌套從外到裏執行
<div @click.capture = "handlerDiv">
	<input type="button" value="戳" @click = "handlerInput">
	</input>
</div>
點擊“戳”按鈕時,先執行handlerDiv的方法,再執行handlerInput的方法
  1. .self 實現只有點擊當前元素時候,纔會觸發事件處理函數
<div class="inner" @click.self="divHandler">
      <input type="button" value="戳" @click="btnHandler">
</div>
點擊“戳”按鈕,只會走btnHandlere方法(即阻止冒泡),只有當點擊div的時候纔會觸發divHandler方法
  1. .once 只觸發一次事件處理函數
<a href="http://www.baidu.com" @click.prevent.once="linkClick">有問題,先去百度</a>
只阻止一次linkClick行爲 第二次會跳轉到百度首頁

四.v-model指令:實現表單元素和Model中數據的雙向綁定

注意:v-model 只能運用在 表單元素中 常見的有

<input type="text">
<input type="password"> 
<input type="radio">
<input type="checkbox">
<input type="button" value="確認" />
<input type="submit" value="提交" />

等等… 因爲其他元素的值沒法在頁面修改,也就不能實現V中數據傳給M,只能M傳給V

<input type="text" style="width:100%;" v-model="msg">
 <script>
    var vm = new Vue({
      el: '#app',
      data: {
        msg: 'zzzz'
      },
      methods: {
      }
    });
  </script>

五.v-for

1.循環普通數組

 <p v-for="(item, i) in list">索引值:{{i}} --- 每一項:{{item}}</p>
	 data: {
        list: [1, 2, 3, 4, 5, 6]
      },

2.循環對象數組

<p v-for="(user, i) in list">Id:{{ user.id }},名字:{{ user.name }},索引:{{i}}</p>
 data: {
        list: [
          { id: 1, name: 'zs1' },
          { id: 2, name: 'zs2' },
          { id: 3, name: 'zs3' },
          { id: 4, name: 'zs4' }
        ]
      },

3.循環對象

<!-- 注意:在遍歷對象身上的鍵值對的時候, 除了 有  val  key  ,在第三個位置還有 一個 索引  -->
<p v-for="(val, key, i) in user">值是: {{ val }} ,鍵是: {{key}} ,索引: {{i}}</p>
 data: {
    user: {
      id: 1,
      name: 'xxx',
      gender: '男'
   }
},

4.循環數字

<!-- 注意:如果使用 v-for 迭代數字的話,前面的 count 值從 1 開始 -->
    <p v-for="count in 10">這是第 {{ count }} 次循環</p>

5.key屬性的使用

<!-- 注意: v-for 循環的時候,key 屬性只能使用 number獲取string -->
    <!-- 注意: key 在使用的時候,必須使用 v-bind 屬性綁定的形式,指定 key 的值 -->
    <p v-for="item in list" :key="item.id">
      <input type="checkbox">{{item.id}} --- {{item.name}}
    </p>
     data: {
        id: '',
        name: '',
        list: [
          { id: 1, name: 'A' },
          { id: 2, name: 'B' },
          { id: 3, name: 'C' },
          { id: 4, name: 'D' },
          { id: 5, name: 'E' }
        ]
      },

六.v-if,v-show的使用

    <input type="button" value="toggle" @click="flag=!flag">

    <!-- v-if 的特點:每次都會重新刪除或創建元素 -->
    <!-- v-show 的特點: 每次不會重新進行DOM的刪除和創建操作,只是切換了元素的 display:none 樣式 -->

    <!-- v-if 有較高的切換性能消耗 -->
    <!-- v-show 有較高的初始渲染消耗 -->

    <!-- 如果元素涉及到頻繁的切換,最好不要使用 v-if, 而是推薦使用 v-show -->
    <!-- 如果元素可能永遠也不會被顯示出來被用戶看到,則推薦使用 v-if -->
    <h3 v-if="flag">這是用v-if控制的元素</h3>
    <h3 v-show="flag">這是用v-show控制的元素</h3>

七.vue中$el屬性:

除了數據屬性,Vue 實例還暴露了一些有用的實例屬性與方法。它們都有前綴 $,以便與用戶定義的屬性區分開來。

var vm= new Vue({    
        el:"#container",    
        data:{    
                msg:"重啓2020!"    
        },    
        address:"all over the world"    
})   

vm.$el:vue關聯的DOM元素 --> #container

vm.$data:vue實例的data對象 -->{msg:“重啓2020!”}

vm.options:vue>vm.options:獲取vue實例的自定義屬性-->vm.options.address–>“all over the world”

(vm.$options.methods ==> 獲取vue實例的自定義屬性methods)

總體結構:
1.vue的基本代碼
2.vue指令
3.事件修飾符( .stop .prevent .capture .self .once)
4.v-model
5.v-for
6.v-if與v-show

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