Vue中常用基礎標簽


創建一個Vue實例

    var vm = new Vue({  
        el:'#app',  
        data:{},  
        methods:{}  
})

在html中完整代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="../vue.js"></script>
</head>
<body>
    <div id="app"></div>
    <script>
    var vm = new Vue({
        el:'#app',
        data:{},

        methods:{}
    })
    </script>
</body>
</html>

常用標簽用法:v-cloak、v-html、v-bind、v-on

差值表達式和v-cloak

{{}} (差值表達式):

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

js代碼 :

var vm = new Vue({
     el:'#app',
     data:{
         msg:"Hello world!"
     },
     methods:{}
})

使用v-cloak:

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

區別:v-cloak會屏蔽

標簽中的{{msg}},解決文本閃爍問題。ps:{{}}前后可以自定義文本,且在使用v-claok后

​ 和msg一起顯示

測試方法:將vue.js在DOM之后導入,使用live server打開頁面,將network調至slow 3G,會發現差值表達式方 法的頁面會先顯示{{msg}}再顯示"Hello world!"。

v-html和v-text

v-html:可以識別msg文本中的DOM標簽。

v-text:識別純文本,且只識別msg中的文本,

標簽中的文本不會被識別

v-html

   <div id="app">
        <p v-html="msg"></p>
    </div>
var vm = new Vue({
     el:'#app',
     data:{
         msg:"<h2>你好,我在測試v-html的作用</h2>"
     },
     methods:{}
})

v-text

<div id="app">
        <p v-text="msg">1111111</p>
    </div>
var vm = new Vue({
     el:'#app',
     data:{
         msg:"<h2>你好,我在測試v-html的作用</h2>"
     },
})

v-bind

可以綁定屬性,可以直接簡寫為冒號‘:’。下面例子將title屬性綁定在mytitle上

<div id="app">
    <!--可直接將v-blind:簡寫為“:”  -->
        <input type="button" value="按鈕" v-bind:title="mytitle" >
    </div>
var vm = new Vue({
     el:'#app',
     data:{
         mytitle:"這是一個button"
     },

})

v-on

給DOM綁定事件。

<div id="app">
    <!--可直接將v-on:簡寫為“@”  -->
        <input type="button" value="按鈕" v-on:click="show">
</div>
var vm = new Vue({
     el:'#app',
     data:{},
     methods: {
                show: function () {
                    alert("Hello!");
                }
            },
})

v-model

實現表單元素和model間的雙向綁定,但是v-model只能在表單中使用(ps:v-bind只能實現數據的單向綁定)

 <div id="app">
        <h1>{{msg}}</h1>
        <!-- v-model 能夠實現表單元素和model間的雙向綁定,但是v-model只能在表單中使用 -->
        <input type="text"  style="width:100%" v-model="msg"> 
    </div>
 var vm = new Vue({
        el:'#app',
        data:{
            msg:"我是愛學習、愛生活的好學生!"
        },
        methods:{}
    })

在text文本框中輸入會改變h1標簽的文本,即msg的值通過v-model綁定到了text的輸入框上了。

v-if和v-show

v-if特點:每次都會重新創建和刪除dom元素 。
v-show特點: 每次不會創建和刪除,但改變display的屬性。

<div id="app">
        <input type="button" value="toggle" @click="toggle">
        <!-- v-if特點:每次都會重新創建和刪除dom元素 -->
        <!-- v-show: 每次不會創建和刪除,但改變display的屬性-->
        <h1 v-if="flag">這是v-if的h1</h1>
        <h1 v-show="flag">這是v-show的h1</h1>
    </div>
  var vm = new Vue({
            el:'#app',
            data:{
                flag:true
            },
            methods:{
                toggle(){
                    this.flag = !this.flag;
                }
            }
        })


點擊按鈕,兩個h1都不會在頁面顯示,使用v-if的dom元素被刪除,v-show的dom元素的display屬性為none。

v-for

創建一個公用的js文件:

var vm = new Vue({
            el:'#app',           
            data:{
                list:[1,2,3,4,5,6,7,8],
                list2:[
                    {id:1,name:'zs1'},
                    {id:2,name:'zs2'},
                    {id:3,name:'zs3'},
                    {id:4,name:'zs4'},                 
                ],
                user1:{
                    id : 1,
                    name:"托尼史塔克",
                    sex:"男"
                }
            },
            methods:{}
        })

1.普通循環

 <p v-for = "(item,i) in list">---索引值---{{i}}---數值---{{item}}</p>

2.復雜函數 遍歷對象數組

 <p v-for = "(user,i) in list2">ID:{{user.id}}---名字:{{user.name}}---索引:{{i}}</p>

3.遍歷對象

<p v-for="(val,key,index) in user1">值是:{{val}}---鍵是:{{key}}--索引{{index}}</p>

4.迭代數字

ps:使用v-for迭代數字,第一個數字從1開始。

<p v-for="count in 10">這是第{{count}}個數字</p>

v-if和v-else

v-if的值為true則展示綁定了v-if的元素,否則展示綁定了v-else屬性的元素。(類似與if....else語句)

<a href="" @click.prevent='flag = true'>登錄</a>
<a href="" @click.prevent="flag = false">注冊</a>
<login v-if="flag"></login>
<register v-else="flag"></register>

可用於兩個組件之間的切換。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM