v-text 用于向所在的标签中渲染文本内容,不会解析标签。
v-html 也是用于向所在的标签中渲染文本内容,可以解析标签。
v-text 与 v-html 会替换掉标签中所有的内容,而插值语法不会。
注意:一定要在可信的内容上使用 v-html,永远不要用在用户提交的内容上,避免坏人利用动态渲染,获取用户的 cookie 进行 XSS 攻击。
使用v-text渲染内容:
<div id="APP"> <p>你好,{{name}}</p> <p v-text="name">你好,</p> </div>
const vm = new Vue({ el: "#APP", data(){ return { name: "张三" } } });
注意:v-text 会替换掉标签中所有的内容,所以更推荐使用 {{ }} 插值语法。
另外,v-text 和 {{ }} 插值语法都不会解析字符串中的标签,例如:
<div id="APP"> <p>你好,{{name}}</p> <p v-text="name">你好,</p> </div>
const vm = new Vue({ el: "#APP", data(){ return { name: "<strong>张三</strong>" } } });
使用v-html渲染内容
<div id="APP"> <p>你好,{{name}}</p> <p v-html="name">你好,</p> </div>
const vm = new Vue({ el: "#APP", data(){ return { name: "<strong>张三</strong>" } } });
注意:v-html 可以解析标签,它和 v-text 一样都会替换掉标签中所有的内容。
原创作者:吴小糖
创作时间:2023.2.18