Vue模板语法插值原始HTML(v-html指令)Mustache语法

Vue / 740人浏览 / 0人评论

Vue模板语法插值原始HTML(v-html指令)Mustache语法

Vue.js 是什么?

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

如果你已经是有经验的前端开发者,想知道 Vue 与其它库/框架有哪些区别,请查看对比其它框架。

Vue模板语法插值原始HTML(v-html指令)Mustache语法

以下代码是保存至一个index.html的文档(文件后缀名是.html)中,并非是.vue的文件,当今后学会了一些更vue复杂的应用的时候,比如CLI创建了更复杂的vue应用,并支持单文件组件,那在项目下创建的文件可能就是以.vue为后缀的文件。

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vue模板语法插值原始HTML(v-html指令)Mustache语法</title>
    <script src="vue.js" type="text/javascript" charset="utf-8"></script>    
</head>
<body>
    <div id="app">
        <!--
            双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html 指令
        -->
        <span>这里会输出HTML标签: {{ sitename }}</span>
        <p>这里不会输出HTML标签: <span v-html="sitename"></span>,而是在span标签下插入了真正的HTML b 标签</p>
        <!--
        这个 span 的内容将会被替换成为 property 值 sitename,直接作为 HTML——会忽略解析 property 值中的数据绑定。
        注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。
        反之,对于用户界面 (UI),组件更适合作为可重用和可组合的基本单位。
        你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。
        请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。    
        -->        
    </div>
    <!--
        这里会输出HTML标签: <b style="color:red;">编程之吧</b>
        这里不会输出HTML标签: 编程之吧,而是在span标签下插入了真正的HTML b 标签
    -->
    <script type="text/javascript">
        var vm = new Vue({
            el: '#app',
            data: {
                message: 'Hello Vue!',
                sitename: '<b style="color:red;">编程之吧</b>',                
            }        
        });
        vm.message = '福星之吧'//重新给data属性message 赋值,有v-once 指令的标签中属性值将不会被改变,其值还是data 中message的值
    </script>
</body>
</html>

转载注明:

0 条评论

还没有人发表评论

发表评论 取消回复

记住我的信息,方便下次评论
有人回复时邮件通知我