指令1——(插值表达式/v-cloak/v-text/v-html)

一、mustache插值表达式
即两个大括号({{}}),在标签元素内容中使用,传入变量,显示Vue对象data中的值。

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body> 
        <div id="app">   
        <!-- 插值表达式显示data中内容 -->
           <p>{{ msg }}</p>
        </div>
        
        <script>
            var vm = new Vue({  
                el:'#app',  
                data:{   
                    msg:'123'
                }
            })  
        </script>
    </body>
</html>

浏览器显示


二、v-cloak

网速慢时,页面会闪现标签里插值表达式,例如{{ msg }}。使用v-cloak,还没渲染完时有这个属性的的样式设为隐藏,渲染完v-cloak标签会自动消失变回显示。

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <style>
            [v-cloak]{
                display: none;
            }
        </style>
    </head>
    <body> 
        <div id="app">   
        <!-- 使用v-cloak,解决插值表达式的闪烁问题 -->
           <p v-cloak>{{ msg }}</p>
        </div>
        
        <script>
            var vm = new Vue({  
                el:'#app',  
                data:{   
                    msg:'123'
                }
            })  
        </script>
    </body>
</html>

三、v-text
和插值表达式相似,渲染标签内容。
初始标签内没内容,不会出现插值表达式的闪烁问题。
v-test对应的数据会完全覆盖标签中的内容;插值表达式只会替换自己的占位符,其他内容不变。

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body> 
        <div id="app">   
         <p>++++{{ msg }}----</p>   <!-- 闪烁问题;内容只会替换插值表达式,其他不变 -->
         <p v-text="msg">++++----</p>   <!-- 无闪烁问题;内容会全部覆盖标签中内容 -->
        </div>
        
        <script>
            var vm = new Vue({  
                el:'#app',  
                data:{   
                    msg:'123'
                }
            })  
        </script>
    </body>
</html>

四、v-html
v-html对应的数据会完全覆盖标签中的内容,但会把对饮数据当作html解析到页面上,而插值表达式和v-text只会把数据当作普通文本加载到页面上。

<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    </head>
    <body> 
        <div id="app">   
         <p>{{ msg }}</p> 
         <p v-text="msg"></p>  
         <p v-html="msg"></p>  
        </div>
        
        <script>
            var vm = new Vue({  
                el:'#app',  
                data:{   
                    msg:'<h1>我是一个html标签!</h1>'
                }
            })  
        </script>
    </body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • vue概述 在官方文档中,有一句话对Vue的定位说的很明确:Vue.js 的核心是一个允许采用简洁的模板语法来声明...
    li4065阅读 7,282评论 0 25
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,842评论 1 92
  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,690评论 0 6
  • 指令 指令是可以写在DOM元素的小命令,他们以v-为前缀,Vue就能识别这是一个指令并保持语法的一致性。如果你需要...
    Pretend_ebb0阅读 398评论 1 0
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 5,088评论 0 29