【前端开发】一文带你精通Vue.js框架(四)

简介: 【前端开发】一文带你精通Vue.js框架(四)

前言

上一篇中我们学习了vue.js 的实例化、逻辑理解等知识点,这一篇我们将接着Vue系列模板语法的学习。


1️⃣ Vue.js模板语法之指令

Vue 模板语法中的指令是一种特殊的 HTML 属性,以 “v-” 开头,用于在模板中绑定数据和执行一些特定的操作。下面是几个常用的 Vue 指令:

1.v-bind(缩写为 :):用于绑定数据到 HTML 元素的属性上。例如:

<img v-bind:src="imageUrl">

这样可以将 imageUrl 数据绑定到 src 属性,实现动态图片显示。

2.v-model:用于实现表单元素与 Vue 实例数据的双向绑定。例如:

<input type="text" v-model="message">

当用户在输入框中输入时,message 的值会自动更新;同时,当 message 的值改变时,输入框中的内容也会随之更新。

3.v-for:用于循环渲染列表数据。例如:

<ul>
  <li v-for="item in items">{{ item }}</li>
</ul>

这会根据 items 数组的内容循环生成多个 <li> 元素,并将数组元素展示出来。

4.v-if:根据条件判断是否渲染元素。例如:

<div v-if="isVisible">可见内容</div>

isVisible 为真时,该 <div> 元素会被渲染到页面中;否则,它会被移除。

5.v-on(缩写为 @):用于监听 DOM 事件,并触发相应的方法。例如:

<button v-on:click="handleClick">点击我</button>

当按钮被点击时,会执行 Vue 实例中的 handleClick 方法。

在Vue的指令中,有时候我们需要传递参数来进一步定制指令的行为。以下是一些常见指令中的参数用法:

1.v-bind 指令的参数:

<img v-bind:src="imageUrl">  <!-- 参数是属性名(src) -->

2.v-on 指令的参数:

<button v-on:click="handleClick">点击我</button>  <!-- 参数是事件名(click) -->

3.v-for 指令的参数:

<li v-for="item in items" :key="item.id">{{ item.name }}</li>  <!-- 参数是当前项的别名(item),可选参数

4.v-model 指令的参数:

<input type="text" v-model="message">  <!-- 参数是要绑定的数据属性名(message) -->

5.v-ifv-else-if 指令的参数:

<div v-if="isVisible">可见内容</div>  <!-- 参数是条件表达式(isVisible) -->
<div v-else-if="isDisabled">不可用</div>  <!-- 参数是条件表达式(isDisabled) -->

接着,我们介绍一下指令中的修饰符。


修饰符是以半角句号.指明的特殊后缀,它们用于指示指令应该以某种特殊方式绑定。


以下是几个常用的修饰符及其作用:


1..prevent:阻止默认事件。例如,@click.prevent 会阻止点击事件的默认行为,如提交表单或刷新页面。

2..stop:阻止事件冒泡。当一个元素上的事件被触发时,事件会向父元素传播。使用 .stop 修饰符可以阻止事件进一步向上传播。

3..capture:使用事件捕获模式。默认情况下,事件在冒泡阶段处理,添加 .capture 修饰符可以将事件处理移至捕获阶段。

4..self:只有事件是从触发它的元素自身触发时才触发相应的方法。如果事件是从子元素冒泡到父元素时触发的,使用 .self 修饰符可以防止父元素的绑定方法被调用。

5..once:指定事件只能触发一次。一旦事件被触发后,后续的相同事件将不再触发绑定的方法。

例如:

<button @click.prevent.stop="handleClick">点击我</button>

我们使用了 .prevent 修饰符来阻止按钮点击事件的默认行为,并使用 .stop 修饰符以停止事件进一步冒泡。这意味着点击按钮时,不会触发默认行为,也不会将事件传播给父元素。


2️⃣ Vue.js模板语法之用户输入

在 Vue.js 中,可以使用 v-model 指令将用户输入的数据双向绑定到 Vue 实例的数据属性上。这样可以轻松地实现表单输入和数据的同步更新。

示例如下:

1.文本输入:

<input type="text" v-model="message">

我们将输入框的值与 Vue 实例中的 message 属性绑定,可以通过 this.message 来访问和修改输入框中的文本内容。

2.多行文本输入:

<textarea v-model="message"></textarea>

使用 v-model 指令也可以轻松地将多行文本输入框的值与 Vue 实例中的属性进行双向绑定。

3.单选按钮:

<input type="radio" v-model="selected" value="option1">
<input type="radio" v-model="selected" value="option2">

当用户选择其中一个单选按钮时,selected 的值将被更新为对应的选项值。

4.复选框:

<input type="checkbox" v-model="checked">

checked 属性与复选框状态进行双向绑定。当复选框选中或取消选中时,checked 的值将自动更新。


3️⃣ Vue.js模板语法之过滤器

在 Vue.js 中,过滤器可以用于对数据进行格式化或处理,以便在模板中显示。

下面是使用过滤器的基本语法:

{{ 表达式 | 过滤器 }}

其中,表达式 是要进行过滤的数据,过滤器 是过滤器的名称。

Vue.js 提供了一些内置的常用过滤器,例如:

过滤器名称 描述 示例
uppercase 将文本转换为大写字母 {{ message | uppercase }}
lowercase 将文本转换为小写字母 {{ message | lowercase }}
capitalize 将文本的首字母大写 {{ message | capitalize }}
currency 将数字格式化为货币形式 {{ price | currency }}
date 将日期格式化为指定的格式 {{ date | date(‘YYYY-MM-DD’) }}


除了使用内置过滤器,还可以在 Vue 实例中自定义过滤器。自定义过滤器可以通过全局配置或在组件定义中进行注册。

全局配置:

Vue.filter('myFilter', function(value) {
  // 进行数据处理
  return processedValue;
});

组件定义:

filters: {
  myFilter(value) {
    // 进行数据处理
    return processedValue;
  }
}

然后在模板中使用自定义过滤器:

{{ data | myFilter }}

需要注意的是,过滤器不会改变原始的数据,而是返回一个处理后的副本。

举个例子,我们想实现一个英文句子首字母变为小写字母,其余变为大写字母,可以使用过滤器这样做:

<!DOCTYPE html>
<html>
<head>
  <title>Example</title>
  <script src="https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js"></script>
</head>
<body>
  <div id="app">
    <!-- 在模板中使用过滤器,将 sentence 变量的值传递给 xss 过滤器进行处理 -->
    <p>{{ sentence | xss }}</p>
  </div>
  <script>
    // 在 Vue 实例之外定义过滤器
    Vue.filter('xss', function(value) {
      if (!value) return ''; // 如果值为空,则返回空字符串
      value = value.toString(); // 将值转换为字符串类型
      // 将首字母转换为小写字母,将剩余字符转换为大写字母
      return value.charAt(0).toLowerCase() + value.slice(1).toUpperCase();
    });
    new Vue({
      el: '#app',
      data: {
        sentence: 'Recent research has also shown that indulging in a high-fat and high-sugar diet may have negative effects on your brain, causing learning and memory deficits.' // 初始化 sentence 变量
      }
    });
  </script>
</body>
</html>

结果如下,成功实现了转换目的:


4️⃣ 总结

以上为前端开发:一文带你精通Vue.js前端框架系列(四),带领读者掌握Vue模板语法,以上操作读者可躬身实践。

后续将分享前端开发:一文带你精通Vue.js前端框架系列(五),读者可订阅专栏持续学习。

目录
相关文章
|
2月前
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
|
2月前
|
Web App开发 JavaScript 前端开发
深入浅出Node.js后端框架
【10月更文挑战第34天】在数字化时代,后端开发如同一座桥梁,连接着用户界面与数据处理的两端。本文将通过Node.js这一轻量级、高效的平台,带领读者领略后端框架的魅力。我们将从基础概念出发,逐步深入到实战应用,最后探讨如何通过代码示例来巩固学习成果,使读者能够在理论与实践之间架起自己的桥梁。
|
13天前
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
132 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
9天前
|
开发框架 小程序 前端开发
圈子社交app前端+后端源码,uniapp社交兴趣圈子开发,框架php圈子小程序安装搭建
本文介绍了圈子社交APP的源码获取、分析与定制,PHP实现的圈子框架设计及代码编写,以及圈子小程序的安装搭建。涵盖环境配置、数据库设计、前后端开发与接口对接等内容,确保平台的安全性、性能和功能完整性。通过详细指导,帮助开发者快速搭建稳定可靠的圈子社交平台。
103 18
|
2月前
|
JavaScript 前端开发 Java
springboot解决js前端跨域问题,javascript跨域问题解决
本文介绍了如何在Spring Boot项目中编写Filter过滤器以处理跨域问题,并通过一个示例展示了使用JavaScript进行跨域请求的方法。首先,在Spring Boot应用中添加一个实现了`Filter`接口的类,设置响应头允许所有来源的跨域请求。接着,通过一个简单的HTML页面和jQuery发送AJAX请求到指定URL,验证跨域请求是否成功。文中还提供了请求成功的响应数据样例及请求效果截图。
springboot解决js前端跨域问题,javascript跨域问题解决
|
2月前
|
缓存 监控 JavaScript
Vue.js 框架下的性能优化策略与实践
Vue.js 框架下的性能优化策略与实践
|
2月前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
49 2
|
2月前
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
2月前
|
前端开发 JavaScript API
前端界的秘密武器:掌握这些框架,让你轻松秒杀99%的同行!
前端开发日新月异,掌握几个明星框架如React、Vue.js和Angular,不仅能让工作更得心应手,还能轻松超越同行。React以高效的虚拟DOM和组件化著称;Vue.js简洁易懂,灵活性高;Angular提供全面的解决方案,适合大型应用。此外,轻量级的Svelte也值得关注,其编译时处理设计提升了应用性能。掌握这些框架,结合深刻理解和灵活运用,助你在前端领域脱颖而出。
37 9
|
2月前
|
JSON 前端开发 JavaScript
聊聊 Go 语言中的 JSON 序列化与 js 前端交互类型失真问题
在Web开发中,后端与前端的数据交换常使用JSON格式,但JavaScript的数字类型仅能安全处理-2^53到2^53间的整数,超出此范围会导致精度丢失。本文通过Go语言的`encoding/json`包,介绍如何通过将大整数以字符串形式序列化和反序列化,有效解决这一问题,确保前后端数据交换的准确性。
59 4
下一篇
开通oss服务