Vue 中一些常用的指令和用法及其一些案例

 

一,mustache 语法

        
  • 使用“mustache” 语法 {{ msg }}(双花括号)     
  • mustache 标签将会被替换为 data 对象上对应的 msg 属性的值。     
  • 只要绑定的数据对象上的 msg 属性发生改变,插值内容也会随之更新。
    <!DOCTYPE html>
    <html lang="en">
    <head>
    	<meta charset="UTF-8">
    	<meta http-equiv="X-UA-Compatible" content="IE=edge">
    	<meta name="viewport" content="width=device-width, initial-scale=1.0">
    	<title>Document</title>
    	<script src="../Vue/vue.js"></script>
    </head>
    <body>
    	<div id="app">
    		<!-- <h1>{{fistname}}-{{lastname}}</h1> -->
    		<h2>{{fistname +'-'+lastname}}</h2>
    	</div>
    	<script>
    		const vm = new Vue({
    			el:'#app',
    			data(){
    				return{
    					fistname:'李',
    					lastname:'华'
    				}
    			}
    		})
    	</script>
    </body>
    </html>

 注意:

        
  1. mustach语法 支持 js 的数据类型     
  2. mustach语法 不支持 console.log 和 alert()

二,Vue  ——  v-for  指令

        v-for有三个值:

        v-for="数组或对象中的每一个值      in/of      数组或对象本身"
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
 
<body>
    <div id="app">
        <div>{{list}}</div>
        直接写渲染的结果是['李华','小明','小丽']
        <!-- <div v-for="item of list">{{item}}</div> -->
        v-for有三个值:
        v-for="数组或对象中的每一个值 in/of 数组或对象本身"
        <div v-for="item in list">{{item}}</div>
 
        <div v-for="item of obj">{{item}}</div>
        <!-- <div v-for="item in obj">{{item}}</div> -->
        <!-- <div v-for="item of obj2">{{item.realname}} {{item.age}}</div> -->
        <h2 v-for="(item,index) in list" :key="index"> {{item}} </h2>
        在将来的项目中写v-for是需要加上:key 他的值可以写索引最好写数据中的id值
          
        <!-- <h2 v-for="item in obj2" :key="item.id">{{item.realname+'-'+item.age}}</h2> -->
    </div>
    <script>
        const vm = new Vue({
            el: '#app',
            data() {
                return {
                    list: ['李华', '小明', '小丽'],
                    obj: {
                        a: 1,
                        b: 2,
                        c: 3
                    },
                    obj2: [
                        { id: 1, realname: '李华', age: 19 },
                        { id: 2, realname: '小丽', age: 29 },
                        { id: 3, realname: '小明', age: 11 },
                        { id: 4, realname: '小红', age: 16 }
                    ]
 
                }
            }
        })
    </script>
</body>
 
</html>


数据绑定:就是将数据填充到网页

数据响应式:在网页控制台更改页面数据的过程就叫数据响应式 

三,Vue  —— v-once 指令

不需要表达式

只渲染元素和组件一次。 显示内容之后就不再具有响应式功能(无法用数据响应式更改网页数据)

应用场景:如果显示的数据信息后续不需要再次修改,可以使用v-once,这样可以提高性能。
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
 
<body>
    <div id="app">
        普通插值 
        <h2>{{msg}}</h2>
        v-once 只渲染一次
        <h2 v-once>{{msg}}</h2>
    </div>
    <script>
        const vm = new Vue({
            el: '#app',
            data() {
                return { 
                    msg: '我是否会改变呢?' 
                   
 
                }
 
            }
        })
    </script>
</body>
 
</html>


 四,Vue —— 增减小案例
<!DOCTYPE html>
<html lang="en">
 
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
 
<body>
    <div id="app">
        <!-- <button v-on:click="add">+</button>
        <h3>{{count}}</h3>
        <button v-on:click="sub">-</button> -->
        <!-- 简写 -->
        <button @click="add">+</button>
        <h1>{{count}}</h1>
        <button @click="sub">-</button>
    </div>
</body>
<script>
    const vm = new Vue({
        el: '#app',
        data() {
            return {
                count: 0
            }
        },
        methods: {
            add() { //以后所有的方法都写在methods里面
                this.count++
            },
            sub() {
                this.count--
            }
        }
    })
</script>
 
</html>


效果图:

 五,Vue  —— v-html  指令   

作用:填充HTML片段  但是存在安全问题  可以再本网在内部数据使用,如果是来自第三方的数据不可用

属于:数据绑定指令

是 innerHTML 更新的新版 作用与innerHTML 类似
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
<body>
    <div id="app">
        v-html 可以解析html格式, 与innerHTML用法相似
        
        <h2 v-html="url"></h2>
    </div>
    <script>
        const vm = new Vue({
            el:'#app',
            data(){
                return{
                    url:""
                }
            }
        })
 
    </script><a href="http://www.baidu.com">百度一下</a>
</body>
</html>


六,Vue  —— v-text  指令

作用:填充纯文本 与插值表达式相比更加简洁

属于  数据绑定指令

没有 v-text属性的只会插入与msg对应的data数据 下例结果为  今天周几啊?周六

有v-text 属性会覆盖标签内所有的内容与innerText很相似然后再插msg数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
<body>
    <div id="app">
        <h2>今天周几啊?{{msg}}</h2>
        v-text指令 与 inntext的作用相似
        <h2 v-text="msg">   今天周几啊?  {{msg}}  </h2>
    </div>
    <script>
        const vm = new Vue({
            el:'#app',
            data(){
                return{
                    msg:"周六"
                }
            }
        })
    </script>
</body>
</html>

 七,Vue  —— v-pre 指令

跳过这个元素和它的子元素的编译过程。

属于:数据绑定指令

v-pre 可以用来显示原始 Mustache 标签跳过编译过(分析编译过程)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../Vue/vue.js"></script>
</head>
<body>
    <div id="app">
        <h1>{{msg}}</h1>
        <h1 v-pre>{{msg}}</h1>
    </div>
</body>
    <script>
        const vm = new Vue({
            el:'#app',
            data(){
                return{
                    msg:'我直接都不渲染你气不气'
                }
            }
        })
    </script>
</html>

八,Vue  —— v-cloak 指令

 1, 提供样式

            [v-cloak]{

               display:none;

                }

 执行原理:先通过样式隐藏内容,然后在内存中进行值得更新,更新好之后在显示最终的结果

主要是为了解决闪动问题

    

 九,Vue——v-bind 指令

v-bind  可以简写成   :

含义:

class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。

Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

声明: 下篇文章将详细介绍  v-bind指令 用法及实操小案例 不要走开广告之后更加精彩哦!

全部评论

相关推荐

点赞 评论 收藏
分享
06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-24 13:35
点赞 评论 收藏
分享
评论
2
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务