Vue2基本指令的学习 v-test v-html

简介: 从基础到实战,我们一环都不要少!

基础语法

v-text

使用 v-text 输出

代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>v-text</title>
</head>

<body>
    <div id="app">
        <!-- 使用插值输出 -->
        <h1>{
  
  {msg}}</h1>
        <!-- 使用指令 v-text 输出 -->
        <h1 v-text="msg"></h1>
    </div>
    <script>
        let app = new Vue({
    
    
            el: "#app",
            data: {
    
    
                msg: "Hello Vue"
            }
        })
    </script>
</body>

</html>

思考 插值语法输出v-text输出 有什么区别 ?

{ {msg}} 插值语法是是需要等待 Vue 实例创建出来,才会进行值的插入(也即渲染页面),所以当 Vue 实例还没创建出来的时候 页面效果是展示{ {msg}}

v-text 指令语法也是需要等待 Vue 实例创建出来,指令才会生效,但若使用指令的标签中没有内容的话,那么页面是什么都不会显示的,当Vue实例创建完成,就会将值插入标签,进行页面渲染。

代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>指令语法v-text与插值语法的区别</title>
    <script src="vue.js"></script>
</head>

<body bgcolor="pink">
    <div id="app">
        <h1>{
  
  {msg}}</h1>
        <h2 v-text="msg"> 请稍等.... </h2>
    </div>
    <script>
        setInterval(() => {
    
    
            let app = new Vue({
    
    
                el: "#app",
                data: {
    
    
                    msg: "Hello Vue",
                }
            })
        }, 4000)
    </script>
</body>

</html>

效果图示

za
image.png

v-html

指令语法 v-html,可以解析html标签

代码示例

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>v-html</title>
    <script src="vue.js"></script>
</head>

<body bgcolor="pink">
    <div id="app">
        <div>{
  
  { richText }}</div>
        <div v-text="richText"></div>
        <div v-html="richText"></div>
    </div>
    <script>
        let app = new Vue({
    
    
            el: "#app",
            data: {
    
    
                richText: '<div><h1>v-html</h1><p>可以解析我们吗?</p></div>'
            }
        })
    </script>
</body>

</html>

效果图示

image.png

如何用呢

场景 1

文本展示:对于需要直接显示文本内容的场景,可以使用 v-text。例如,在一个产品列表中,每个产品都有一个描述字段,你可以使用 v-text 来展示该字段的内容。

<div v-for="product in productList">
  <p v-text="product.description"></p>
</div>

场景 2

文本展示:对于需要直接显示文本内容的场景,可以使用 v-text。例如,在一个产品列表中,每个产品都有一个描述字段,你可以使用 v-text 来展示该字段的内容。

<div v-html="articleContent"></div>

场景 3

前端渲染模板:有时候你可能需要根据特定的条件动态生成一些 HTML 内容,这时可以使用 v-html 结合计算属性或方法来实现前端渲染。

<div v-html="renderTemplate"></div>

computed: {
   
   
  renderTemplate() {
   
   
    if (this.condition) {
   
   
      return '<p>条件为真时的模板</p>';
    } else {
   
   
      return '<p>条件为假时的模板</p>';
    }
  }
}

通过计算属性 renderTemplate 返回一段 HTML 字符串,并使用 v-html 把它渲染到页面上。

需要注意的是,在使用 v-html 指令时,要确保数据是可信的,并避免使用用户输入的内容来显示或渲染 HTML。这是为了防止潜在的安全风险和 XSS 攻击。

当涉及复杂逻辑时可以与其它搭配使用

条件渲染:使用 v-if 或 v-show 指令根据条件来渲染特定的内容。

<div v-if="isUserLoggedIn">
  <p>Welcome, {
  
  {userName}}!</p>
</div>
<div v-else>
  <p>Please log in to continue.</p>
</div>

列表渲染:使用 v-for 指令在列表数据上进行循环渲染。

<ul>
  <li v-for="item in items" :key="item.id">{
  
  { item.name }}</li>
</ul>

表单处理:使用 v-model 指令双向绑定表单元素的值,并结合表单验证逻辑。

<input type="text" v-model="username" required>
<button @click="submitForm">Submit</button>
javascript
methods: {
  submitForm() {
    if (validFormData(this.username)) {
      // 处理表单提交逻辑
    }
  }
}

事件处理:使用 v-on 或简写的 @ 指令来处理用户交互事件,并执行相应的逻辑。

<button @click="handleButtonClick">Click me</button>
javascript
methods: {
  handleButtonClick() {
    // 处理按钮点击逻辑
  }
}

复杂的业务逻辑通常需要结合更多的 Vue 功能和特性,如计算属性、侦听器、自定义指令、组件等。根据具体的需求和场景,选择合适的功能和指令来实现复杂逻辑。


谢谢款待

目录
相关文章
|
4天前
|
JavaScript
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
这篇文章介绍了如何在Vue 2或Vue 3项目中实现一个自定义的全局指令`v-dragSwitch`,用于创建可以任意方向拖拽并悬浮的元素,同时包含边界处理的逻辑。
21 2
基于Vue2或Vue3实现任意上下左右拖拽悬浮的元素,且配置为自定义的全局指令
|
4天前
|
JavaScript 前端开发 安全
Vue学习之--------内置指令的使用【v-bind、v-model、v-for、v-on、v-if 、v-else、v-show、v-text。。。】(2022/7/19)
这篇文章详细介绍了Vue中常见的内置指令,如v-bind、v-model、v-for、v-on、v-if、v-else、v-show、v-text和v-html等,并通过代码示例演示了它们的使用和效果。
Vue学习之--------内置指令的使用【v-bind、v-model、v-for、v-on、v-if 、v-else、v-show、v-text。。。】(2022/7/19)
|
4天前
|
JavaScript 前端开发
基于Vue实现具有固定表头、合并单元格的Html表格
本文介绍了如何在Vue框架中创建一个具有固定表头和合并单元格功能的HTML表格,通过CSS的`position: sticky`属性实现表头固定,并通过设置`rowspan`和`colspan`属性来实现单元格合并。
7 0
基于Vue实现具有固定表头、合并单元格的Html表格
|
7天前
HTML基础知识学习
HTML基础知识学习
15 1
|
14天前
|
JSON JavaScript 数据格式
Vue常用的指令都有哪些?
常用指令: 1、v-model 多用于表单元素实现双向数据绑定 (同angular中的ng-model) 2、v-for格式: v-for="字段名in(of)数组json"循环数组或json(同angular中的ng repeat),需要注意从vue2开始取消了$index 3、v-show
17 6
|
1月前
|
自然语言处理 开发者 Python
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
|
1月前
|
JSON JavaScript 数据格式
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
文本-----wangEditor的使用,设置和获取内容,展示HTML无样式怎么办????console同步展示怎样写,Vue的配置在Vue3配置文件中的配置,是editor中的v-model绑定的值
|
1月前
|
JavaScript 前端开发 CDN
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)
17 0
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)
|
1月前
|
JavaScript
【vue】vue 里面使用 v-html 插入的文本带有换行符‘\n‘不换行
【vue】vue 里面使用 v-html 插入的文本带有换行符‘\n‘不换行
216 0
|
1月前
|
JavaScript 前端开发 程序员
Vue指令的使用以及自定义指令
Vue指令的使用以及自定义指令
18 0

热门文章

最新文章