vue数据绑定html

html标签的纯文本显示/被当做html标签处理;

1)使用两个大括号时,假如字符串内容是html标签,那么不会被转义;

2)使用三个大括号时,字符串内的html标签会被直接转义

a.两个大括号:

 1 <div id="app">
 2     {{html}}
 3 </div>
 4 <script>
 5     var vm = new Vue({
 6         el:"#app",
 7         data: {
 8             html:"<span>span</span>"
 9         }
10     })
11 </script>  

输出结果:

1 <span>span</span>  

b.三个大括号:

 1 <div id="app">
 2     {{{html}}}
 3 </div>
 4 <script>
 5     var vm = new Vue({
 6         el:"#app",
 7         data: {
 8             html:"<span>span</span>"
 9         }
10     })
11 </script>
12 <script>
13     function load() {
14         vm.$mount("#app");
15     }
16 </script>  

输出:

1 span

3)插入内容的数据绑定无效(在没有用partials的情况下),使用两个大括号,三个大括号

 1 <div id="app">
 2     {{{html}}}
 3 </div>
 4 <script>
 5     var vm = new Vue({
 6         el:"#app",
 7         data: {
 8             html: "<span>span{{val}}</span>",
 9             val: "11"
10         }
11     })
12 </script>
13 <script>
14     function load() {
15         vm.$mount("#app");
16     }
17 </script>          

输出:

span{{val}}

说明没有数据绑定。

4)禁止在用户提交的内容上动态渲染,否则会受到XSS攻击

5)插值也可以用在html标签的属性中,例如class,或者id,或者其他。

但是Vue.js的指令和特殊性内是不可以用插值的。

时间: 2024-10-24 16:26:13

vue数据绑定html的相关文章

Vue数据绑定

gitHub地址:https://github.com/lily1010/vue_learn/tree/master/lesson04 一 双括号用来数据绑定 (1)写法一: {{message}},这种可以实时响应 (2)写法二: {{*message}},单次插值,今后的数据变化就不会再引起插值更新了 (3)双括号标签也可以用在属性上 举个栗子: <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q

Vue 数据绑定语法

数据绑定语法 Vue.js 的模板是基于 DOM 实现的.这意味着所有的 Vue.js 模板都是可解析的有效的 HTML,且通过一些特殊的特性做了增强.Vue 模板因而从根本上不同于基于字符串的模板,请记住这点. 插值 文本 数据绑定最基础的形式是文本插值,使用 “Mustache” 语法(双大括号): <span>Message: {{ msg }}</span> Mustache 标签会被相应数据对象的 msg 属性的值替换.每当这个属性变化时它也会更新. 你也可以只处理单次插

vue数据绑定原理

来点基础知识: 属性值是函数的属性叫方法. 对象就是属性和方法的集合. 我们来谈谈属性. 属性表面上来看就好像是键值对 var 我是对象 = { 我是属性名:'我是属性值' } console.log(我是对象.我是属性名)//我是属性值 然后来介绍下一个增改属性的方法Object.defineProperty() Object.defineProperty(我是对象,'我是新增属性',{ // 这个对象是用来修饰属性的,即属性的特征属性 // 就是我们看到的属性值 value:'我是新增属性的

Vue数据绑定失效

首先,我们得明白Vue数据响应的原理: 以对象为例:当把一个JavaScript对象传给Vue实例的data选项时,Vue将遍历此对象所有的属性,并使用Object.defineProperty把这些属性全部转为getter/setter, 而getter/setter可以做到追踪依赖,在属性被访问和修改时通知变化. 那么,什么是getter/setter ? var person = { defaultname: 'tom', get name() { return this.defaultn

杂记--关于vue数据绑定原理

1.vue数据双向绑定(v-model) 主要实现依赖于数据的劫持,及观察订阅者模式的使用,其中Object.defineProperty()为核心 作用:定义或修改一个对象上的相关属性及其相关的操作 语法: Object.defineProperty(obj, prop, descriptor) 其中: obj: 需要被操作的目标对象 prop: 目标对象需要定义或修改的属性的名称 descriptor: 将被定义或修改的属性的描述符,分为数据描述符or存取描述符: 用bject.define

Vue数据绑定原理及简单实现

本篇文章中的代码只是部分片段,完整代码存放于github上https://github.com/Q-Zhan/simple-vue. 进入正文~实现数据绑定主要是要实现两个方面的功能:数据变化导致视图变化,视图变化导致数据变化.后者比较容易实现,就是监听视图的事件,然后在回调函数中改变数据.所以重点是数据变化时如何改变视图. 这里的思路是通过object.defineProperty()来对数据的属性设置一个set函数,设置后当数据改变时set函数就会被调用,我们就可以里面进行视图更新操作. 具

02 vue 数据绑定与指令

1.模板语法 在标记内通过模板语法:{{}}进行数据的绑定. {{}}内支持变量,方法名,计算属性,表达式,不支持语句. {{}}将数据解析为纯文本,如果需要解析为html,需要在标记上增加v-html指令. 2.属性绑定 在标记上,为标记属性绑定Vue数据时,不允许用模板语法,如下方式是不合法的. <!-- 错误写法 --> <a href="{{url}}">百度</a> 属性绑定需要使用vue指令v-bind实现 v-bind:属性名=&quo

vue数据绑定远原理

Object.defineProperty 数据劫持,给每个属性设置了get.set. class myvue { constructor(options){ this.$options = options; // 数据响应化 this.$data = options.data; this.observe(this.$data); } observe(value) { if(!value || typeof value !== 'object'){ return; } // 遍历该对象 Obje

从Vue.js源码角度再看数据绑定

## 写在前面 因为对Vue.js很感兴趣,而且平时工作的技术栈也是Vue.js,这几个月花了些时间研究学习了一下Vue.js源码,并做了总结与输出.文章的原地址:[https://github.com/answershuto/learnVue](https://github.com/answershuto/learnVue).在学习过程中,为Vue加上了中文的注释[https://github.com/answershuto/learnVue/tree/master/vue-src](http