vue指令大全~~~

是的,这里有很全的vue指令使用~

1.简单的vue应用

vue作为一个mvvm框架,想想为什么叫做mvvm?

Model是负责数据的存储,

View负责页面的展示

Model View 

负责业务逻辑处理,对数据加工后视图展示

MVVM的作用是业务逻辑代码与视图代码完全分离,各自的职责更加清晰~

<body>
    <!--mvvm里面的v-->
    <div id="app">
        {{val}}
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'你好'
            }
        })
    </script>

</body

2.v-text

 <div id="app" v-text="val"> 
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'你好'
            }
        })
    </script>

视图:

 这里的v-text是偏向于文本的,如果你将 val:'你好'改成val:'<p style="color:red">你好</p>'

视图是

所以接下来就是介绍v-html

3.v-html

<body>
    <!--mvvm里面的v-->
    <div id="app" v-html="val"> 
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'<p style="color:red">你好</p>'
            }
        })
    </script>
</body>

视图:

v-text是把所有的都以文本的形式展现,而v-html能够解析里面的标签~

4 v-cloak

平常我们的数据都是用{{}}渲染出来的,那么这样的渲染与v-html和v-text有什么区别呢?

在网络不行的情况下,我们用{{}}的形式渲染会出现闪现{{}},再出现数据,所以将这个指令放在要渲染的标签的父元素上就可以,还要记得写样式display:none当然你可以放在刚开始vue定义的范围的标签上

 <style>
        [v-cloak]{
          display: none  
        }
    </style>
</head>
<body>
    <!--mvvm里面的v-->
    <div id="app" v-cloak>
        {{val}}
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'你好'
            }
        })
    </script>

</body>

5.v-for

 <div id="app">
        <div v-for="(el,index) in dataList">
            <p>名字:{{el.name}}</p>
            <p>年龄:{{el.age}}</p>
        </div>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        //这是mvvm里面的vm
        var vm = new Vue({
            el: '#app',
            //这是mvvm里面的m 
            data: {
                val: '你好',
                dataList:[
                    {
                        name:'jack',
                        age:18
                    },
                    {
                        name:'rose',
                        age:17
                    }
                ]
            }
        })
    </script>

这里要注意的是:

一般都加上:     

    <div v-for="(el,index) in dataList" :key="index" >
            <p>名字:{{el.name}}</p>
            <p>年龄:{{el.age}}</p>
        </div>         
:key="index"   或者如果el里面有id 的话可以写:key="el.id" 这样来区分每一个list,因为在渲染的时候都是整个list渲染的,加上这个就只用替换,或者说是局部的变化

6.v-on

 <div id="app">
         <button type="button" v-on:click="clickMe()">爱我你就点点我</button>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'你好'
            },
            methods:{
                clickMe(){
                     alert(this.val)
                }

            }
        })
    </script>
v-on:click="clickMe()"  简写:click="clickMe()"就可以了
这里的this代表的就是vm啦,你直接用vm.val也是一样的
视图:

7.v-if
<body>
    <!--mvvm里面的v-->
    <div id="app">
        <p  v-if="val=='你好'">
            Good boy
        </p>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script >
        //这是mvvm里面的vm
        var vm=new Vue({
            el:'#app',
           //这是mvvm里面的m 
            data:{
                val:'你好'
            }
        })
    </script>

</body>

 视图:

v-if和v-show的区别,v-show只是hidden,v-if是直接元素消失......

猜你喜欢

转载自www.cnblogs.com/antyhouse/p/8971647.html