記錄Vue的基礎指令

v-bind綁定標簽屬性
通過添加v-bind:標簽屬性來控制標簽的屬性,設置后自動查詢Vue里面的數據,通常簡寫成:標簽屬性,也可以傳入對象,通過對象的值來控制是否為真

<body>
    <div id="app">
        <a v-bind:href="BaiDuUrl">{{txt}}</a>
        <p :class="{txtPink:isPink}">新年新氣象</p>
    </div>
</body>
<script>
        let vm = new Vue({
            el:"#app",
            data:{
                BaiDuUrl:"https://www.baidu.com/",
                txt:"百度",
                isPink:true
            }
        })
 </script>
</html>
<style>
.txtPink{
    color: pink;
}
</style>

v-on監(jiān)聽事件
v-on指令用于綁定事件監(jiān)聽器,通常簡寫成@事件類型(click,mouseenter,mouseleave...)="表達式",表達式可以是方法名(方法需要寫在methods對象里面,方法里面可以接收事件對象),邏輯等.

<body>
    <div id="app">
        <p>{{num}}</p>
        <button v-on:click="num+=2">加2</button>
        <button @click="numCut">減2</button>
    </div>
</body>
<script>
        let vm = new Vue({
            el:"#app",
            data:{
                num:20
            },
            methods: {
                numCut(e){
                    this.num -= 2 ;
                    console.log(e)
                }
            },
        })
 </script>

v-on可以添加事件修飾符進行事件的擴展

.stop
.prevent
.capture
.self
.once

<!-- 阻止單擊事件冒泡 -->
<a v-on:click.stop="doThis"></a>
<!-- 提交事件不再重載頁面 -->
<form v-on:submit.prevent="onSubmit"></form>
<!-- 修飾符可以串聯 -->
<a v-on:click.stop.prevent="doThat"></a>
<!-- 只有修飾符 -->
<form v-on:submit.prevent></form>
<!-- 添加事件偵聽器時使用事件捕獲模式 -->
<div v-on:click.capture="doThis">...</div>
<!-- 只當事件在該元素本身(比如不是子元素)觸發(fā)時觸發(fā)回調 -->
<div v-on:click.self="doThat">...</div>
<!-- 點擊事件將只會觸發(fā)一次 -->
<a v-on:click.once="doThis"></a>

v-if和v-show指令控制顯示/隱藏
v-show是對樣式層面的控制,v-if是對dom節(jié)點的控制,并且可以設置v-else if,v-else進行擴展

<body>
    <div id="app">
        <h1 v-show="isShow">標題</h1>
        <p v-if="isShow">第一段文字</p>
        <p v-else-if="num==1">第二段文字</p>
        <p v-else>第三段文字</p>
        <button @click="isShow=!isShow">顯示/隱藏</button>
    </div>
</body>
<script>
        let vm = new Vue({
            el:"#app",
            data:{
                isShow:true,
                num:0,
            },
        })
 </script>

v-for指令進行循環(huán)
當需要循環(huán)Vue里面的數據渲染到頁面時可以使用v-for指令,使用 (item,index) in list的語法,通常后面設置:key="唯一值",用來高效的更新DOM.如果傳入對象可以使用(item,key,index) in obj,取到對象的鍵值

<body>
    <div id="app">
        <ul>
            <li v-for="(item,index) in lists" :key="item">第{{index+1}}個:{{item}}</li>
        </ul>
        <p v-for="(item,key,index) in someOne" :key="key">第{{index+1}},{{key}}是{{item}}</p>
    </div>
</body>
<script>
        let vm = new Vue({
            el:"#app",
            data:{
                lists:['段譽','王語嫣','虛竹','喬峰'],
                someOne:{
                    '早上':'吃早餐',
                    '中午':'吃午飯',
                    '晚上':"吃晚飯"
                }
            },
        })
 </script>
 <!-- 頁面數據
 第1個:段譽
第2個:王語嫣
第3個:虛竹
第4個:喬峰
第1,早上是吃早餐

第2,中午是吃午飯

第3,晚上是吃完飯
  -->

v-model指令
v-model的值是,vue接收表單元素的值的變量名,可以實現雙向數據綁定,通過改變v-model的txt值,使綁定txt值的元素發(fā)生改變.
v-model限制在input、select、textarea、components中使用,修飾符.lazy(取代 input 監(jiān)聽 change 事件)、.number(輸入字符串轉為有效的數字)、.trim(輸入首尾空格過濾)
v-model 本質上包含了兩個操作:

  1. v-bind 綁定input元素的value屬性
  2. v-on 指令綁定input元素的input事件,使用data中的數據更新為input元素的value
<body>
    <div id="app">
        <p >{{txt}}</p>
        <input type="text" v-model="txt">
    </div>
</body>
<script>
        let vm = new Vue({
            el:"#app",
            data:{
                txt:'默認文字'
            },
        })
 </script>
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容