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 功能和特性,如计算属性、侦听器、自定义指令、组件等。根据具体的需求和场景,选择合适的功能和指令来实现复杂逻辑。


谢谢款待

目录
相关文章
|
8天前
Twaver-HTML5基础学习(29)界面交互
这篇文章介绍了Twaver-HTML5中界面交互的多种模式,包括默认模式、编辑模式、创建网元模式、创建连线模式、创建形状连线模式、创建形状网元模式、触屏模式和放大镜模式,并提供了相应的代码示例。
40 11
Twaver-HTML5基础学习(29)界面交互
|
8天前
Twaver-HTML5基础学习(27)过滤器
这篇文章介绍了Twaver-HTML5中过滤器的使用,包括可见过滤器、可移动过滤器和可编辑过滤器,并通过代码示例展示了如何通过设置过滤器实现不同用户权限或网元类型的交互和视图。
31 8
Twaver-HTML5基础学习(27)过滤器
|
7天前
|
数据可视化 前端开发
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
本文介绍了如何在Twaver-HTML5中使用鹰眼(Overview)可视化视图组件,它作为Network的缩略图,允许用户通过缩略图导航Network,支持单击、双击和框选操作来控制Network视图。
23 5
Twaver-HTML5基础学习(39)鹰眼可视化视图组件(OverView)
|
8天前
|
移动开发 前端开发 HTML5
Twaver-HTML5基础学习(26)背景
这篇文章介绍了如何在Twaver-HTML5中设置背景,包括栅格图片、颜色、颜色渐变、基本形状以及图片与形状结合的背景类型,并提供了代码示例。
26 6
Twaver-HTML5基础学习(26)背景
|
7天前
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
本文尝试在Twaver-HTML5的Network组件的ToolTip中显示echarts饼图,但未成功,可能与版本有关。
20 4
Twaver-HTML5基础学习(35)Network中ToolTip显示Chart(视图未成功出现)
|
7天前
|
前端开发
Twaver-HTML5基础学习(34)Link显示流动效果
本文介绍了如何在Twaver-HTML5中为Link添加流动效果,通过设置流动颜色、模式等来实现动态视觉效果。
24 3
Twaver-HTML5基础学习(34)Link显示流动效果
|
7天前
|
数据可视化 前端开发 容器
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
本文介绍了如何在Twaver-HTML5中使用列表可视化视图组件(List),展示了如何创建列表、设置列表属性(如行高、间隔颜色等)、实现数据绑定和排序,以及如何通过React代码示例进行操作。
14 2
Twaver-HTML5基础学习(41)列表可视化视图组件(List)
|
7天前
Twaver-HTML5基础学习(38)劈分面板SplitPane
本文介绍了如何在Twaver-HTML5中使用SplitPane组件来创建可分割的面板,通过动态调整分割条来改变面板的大小,支持水平和垂直分割。
14 2
Twaver-HTML5基础学习(38)劈分面板SplitPane
|
7天前
Twaver-HTML5基础学习(36)是否显示滚动条
本文探讨了在Twaver-HTML5中设置是否显示滚动条的方法,包括横向和纵向滚动条的控制,但遇到了设置不生效的问题,可能与软件版本有关。
17 2
Twaver-HTML5基础学习(36)是否显示滚动条
|
7天前
Twaver-HTML5基础学习(32)Network样式andTree样式
本文介绍了如何在Twaver-HTML5中自定义Network和Tree组件的样式,包括标签、提示、颜色、告警等。
24 2
Twaver-HTML5基础学习(32)Network样式andTree样式
下一篇
无影云桌面