Vue如何处理数据、v-HTML的使用及总结

示例代码:

const vm = {}; // 代表 Vue 实例

// 1. 将 data 属性转为响应式
const data = {
courseGoalA: ‘学习Vue…’,
courseGoalB: ‘掌握Vue…’,
vueLink: ‘https://…’
};
vm._data = reactive(data); // 转换为响应式对象

// 2. 代理数据:将 _data 的属性映射到实例顶层
for (const key in data) {
Object.defineProperty(vm, key, {
get() { return vm._data[key]; },
set(value) { vm._data[key] = value; }
});
}

vm.outputGoal = methods.outputGoal.bind(vm);

使用v-HTML输出原始HTML内容

const app = Vue.createApp({
data() {
return {
courseGoalA: ‘学习Vue,最终掌握Vue’,
courseGoalB: ‘掌握Vue,并构建相应的应用程序’,
vueLink: ‘https://cn.****.org/’
};
},
methods: {
outputGoal() {
const ran = Math.random();
if (ran > 0.5) {
return this.courseGoalA;
} else {
return ‘<h2>掌握Vue,并构建相应的应用程序</h2>’;
}
}
}
});

app.mount(‘#user-goal’);

使用v-html会绕过使用插值内置的跨站脚本防护
v-html不会对内容进行转义,这也意味这插入的恶意JavaScript代码也会被执行;
Vue 默认对所有插值表达式进行 HTML 转义,提供 XSS 防护,v-html 会绕过这种内置防护;
所以在使用V-html的时候,需要你保证插入的是可信的内容;

 

 

欢迎使用66资源网
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
7. 本站有不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!

66源码网 » Vue如何处理数据、v-HTML的使用及总结

提供最优质的资源集合

立即查看 了解详情