vue的指令


我之前學了學angular 

發現angular和vue的指令有點類似

先說一下

new  Vue({
         el: "#box", // element(元素) 當前作用域
         data(){
                return { //用return返回對象
                       msg: "122"
                }
            }
        })

首先是

v-model雙向綁定數據

 

<input type="text" v-model="msg"/>   {{msg}} <!--取數據-->
 
v-for循環
 
 1 <div id="box">
 2     <ul>
 3         <!--ng-repeat-->
 4         <li v-for="item in arr">
 5             <span>{{item.name}}</span>
 6             <span>{{item.age}}</span>
 7         </li>
 8     </ul>
 9 </div>
10 <script type="text/javascript">
11     new Vue({
12         el:'#box',
13         data(){
14             return{
15 //                arr:['module','views','controlle','aaaaa']
16                 arr:[
17                     {"name":"xiaohong1","age":12},
18                     {"name":"xiaohong2","age":12},
19                     {"name":"xiaohong3","age":12},
20                     {"name":"xiaohong4","age":12}
21                 ]
22             }
23         }
24     })
25 </script>

 

v-show 顯示與隱藏
<div id="box">
    <div style="width: 100px;height: 100px;background: black;display: none" v-show="show"></div>
</div>
</body>
<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-if顯示與隱藏  (dom元素的刪除添加   個人理解)

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-else

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
    <div style="width: 300px;height: 300px;background: blue" v-else=""></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-else-if

<div id="box">
    <div style="width: 100px;height: 100px;background: black;" v-if="show"></div>
    <div style="width: 100px;height: 100px;background: aqua;" v-else-if=""></div>
    <div style="width: 300px;height: 300px;background: blue" v-else=""></div>
</div>



<script>
    new Vue({
        el: "#box",
        data(){
            return {
                show: true
            }
        }
    })
</script>

v-bind

<div id="box">
    <input type="text" v-bind:value="msg">
    <a :href="link">點擊</a>
</div>



<script>
    new Vue({
        el: "#box",
        data(){
            return {
                msg: "12222",
                link:"1、v-model.html"
            }
        }
    })
</script>

v-on 事件

<div id="box">
    <!-- v-on -->
    <button v-on:click="say">按鈕</button>
    <!--<button @click="say">按鈕</button>-->
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {}
        },
        methods: {
            say() {
                alert(111);
            }
        }
    })
</script>

v-text讀取文本不能讀取html標簽

 1 <div id="box">
 2     <div v-text="msg"></div>
 3 </div>
 4 
 5 <script>
 6     new Vue({
 7         el: "#box",
 8         data(){
 9             return {
10                 msg:"11111"
11             }
12         },
13         methods: {
14             say() {
15                 alert(111);
16             }
17         }
18     })
19 </script>

v-html  能讀取html標簽

<div id="box">
    <div v-html="msg"></div>
</div>

<script>
    new Vue({
        el: "#box",
        data(){
            return {
                msg:"<h1>121212</h1>"
            }
        },
        methods: {
            say() {
            }
        }
    })
</script>

v-class 類名

 1 <style>
 2         .red {
 3 
 4             background: red;
 5         }
 6 
 7         .blue {
 8             width: 100px;
 9             height: 100px;
10             background: blue;
11         }
12 
13     </style>
14 
15 
16 <div id="box">
17     <div style="width: 100px;height: 100px;" v-bind:class='{red:isred}'></div>
18     <!--<div style="width: 100px;height: 100px;" v-bind:class='isred?"red":"blue"'></div>-->    <!--三元運算符方式-->
19     <!--<div style="width: 100px;height: 100px;" v-bind:class='[{red:"isred"}]'></div>-->
20 
21 </div>
22 
23 
24 <script>
25     new Vue({
26         el: "#box",
27         data(){
28             return {
29                 isred:false
30             }
31         }
32     })
33 </script>

v-style  與v-class用法大致一樣  這個我就不寫了

 

v-once  與我下邊的例子  就是  加載一次  如果用到事件中就是事件只執行一次(@click.once="show"

<div id="box">
    <div v-once>{{msg}}</div>
</div>


<script type="text/javascript">
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"qwdqwdqwd"
            }
        }
    })
</script>

v-cloak防閃爍

<div id="box">
    <div v-cloak="">歡迎--{{msg}}</div>
</div>


<script>
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"111111"
            }
        }
    })
</script>

v-pre  把標簽內部的元素原位輸出

<div id="box">
    <div v-pre>歡迎--{{msg}}</div>
</div>



<script>
    new Vue({
        el:"#box",
        data(){
            return{
                msg:"111111"
            }
        }
    })
</script>

 

 

接下來就是一個總結了

 1 vue 是什么
 2 
 3 簡介型的javascript框架    個人開發 (劉雨溪)
 4 
 5     特點:mvvm       m=mvc   module 模型   v=view 視圖    c=controller  控制器
 6          mvvm       m=mvc   module 模型   v=view 視圖     vm (視圖與數據之間的傳遞)
 7          vue1 雙向數據綁定   vue2 單向數據流
 8          單頁面應用
 9 
10 
11 
12 
13 v-model   數據綁定
14 data  返回對象用 return
15 
16 v-for   循環   格式  v-for="字段名 in(of) 數組json"
17 
18 v-show   顯示 隱藏     傳遞的值為布爾值  true  false  默認為false
19 
20 v-if   顯示與隱藏     和v-show對比的區別 就是是否刪除dom節點   默認值為false
21 
22 v-else-if  必須和v-if連用
23 
24 v-else  必須和v-if連用  不能單獨使用  否則報錯   模板編譯錯誤
25 
26 v-bind  動態綁定  作用: 及時對頁面的數據進行更改
27 
28 
29 
30 v-on 綁定事件  函數必須寫在methods里面
31 @click  快捷方法
32 
33 v-text  解析文本
34 
35 v-html   解析html標簽
36 
37 v-bind:class   三種綁定方法  1、對象型  '{red:isred}'  2、三目型   'isred?"red":"blue"'   3、數組型  '[{red:"isred"},{blue:"isblue"}]'
38 
39 v-once  進入頁面時  只渲染一次 不在進行渲染
40 
41 v-cloak  防止閃爍
42 
43 v-pre  把標簽內部的元素原位輸出

 

 


免責聲明!

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



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