Vue- v-html指令

双大括号的数据绑定写法{{ }}会被VUE当成纯文本输出,为了能够输出HTML,需要用到V-HTML指令

<div v-html='message'>{{message}}</div>


在这个指令下数据绑定会被忽略,而被当成HTML


注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。组件更适合担任 UI 重用与复合的基本单元(这句话暂时不知道什么意思)


如果尝试在v-html绑定的结构中再添加其他内容(无论是文本还是HTML),都会被忽略,比如

<div id="example" v-html='message'>
11111//
此处无论是文本。或者其他标签,均不会显示,只会解析{{message}}的内容,所以如果用到v-html指令时,需要单独添加一个元素来绑定,刚开始我以为是因为我写在里面的内容因为包含了  v-model(对应官方解释 数据绑定会被忽略)而无法显示,去掉v-model单纯的为

<div id="example" v-html='message'>
	<input type="text"/>
	<div >{{message}}</div>
	</div>
也是无法显示input控件的

<div >{{message}}</div>
</div>

!!!你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 XSS 攻击。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容插值。

------------------------------------data中数据赋初始值-------------------------------------

可以先给数据赋值再在创建实例的时候绑定数据

	var data={
		mydata:{a:1},
		message:"<div style='background:red;width:50px;height:50px'></div>"
	}
var vm = new Vue({
  el: '#example',
  data:data

})


v-once指令

通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上所有的数据绑定:

     
     
<span v-once>This will never change: {{ msg }} </span>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值