vue调用函数

好的,我们来讲解如何在 Vue 模板中调用函数。您提供的代码是一个非常棒的、很实用的例子。

在 Vue 模板中,你可以在两个主要地方调用函数:

  1. 文本插值中:像 {{ formatDate(date) }} 这样,函数的返回值会作为文本被渲染到页面上。
  2. v-bind 指令(或其简写 :)中:像 :title="toTitleDate(date)" 这样,函数的返回值会成为对应 HTML attribute 的值。

核心要点

  • 定义位置:所有想在模板中调用的函数,都必须在 setup() 函数内部定义,然后作为返回对象的一个属性暴露给模板。
  • 响应式调用:每当函数所依赖的数据(例如传入的参数 date)发生变化时,Vue 的响应式系统会重新调用这个函数,并更新视图。这确保了页面显示总是最新的。
  • 保持简洁:虽然可以在模板中调用函数,但如果一个函数逻辑复杂或计算开销大,更推荐使用计算属性 (computed)。计算属性会缓存其结果,只有在依赖变化时才重新计算,性能更好。

示例代码

下面是一个完整的、可运行的 HTML 文件,它实现了您提供的代码片段 <time :title="toTitleDate(date)" :datetime="date"> {{ formatDate(date) }}</time> 的功能。

<!DOCTYPE html>
<html lang="zh-CN">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vue 3 - 在模板中调用函数</title><style>body {font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;display: grid;place-content: center;min-height: 100vh;text-align: center;font-size: 1.5rem;}time {padding: 10px 20px;background-color: #f0f0f0;border: 1px solid #ccc;border-radius: 8px;cursor: help;}</style>
</head>
<body><div id="app"><p>将鼠标悬停在下面的日期上查看 title 属性:</p><time :title="toTitleDate(post.published)" :datetime="post.published">{{ formatDate(post.published) }}</time>
</div><script src="https://unpkg.com/vue@3/dist/vue.global.js"></script><script>const { createApp, reactive } = Vue;const app = createApp({setup() {// 1. 定义需要在模板中使用的数据const post = reactive({title: '初识 Vue 3',// 使用 ISO 8601 标准格式的日期字符串published: '2025-07-02T12:30:00Z' });// 2. 定义第一个函数,用于格式化显示给用户的日期const formatDate = (dateString) => {if (!dateString) return '';const date = new Date(dateString);// 返回 "YYYY年M月D日" 格式return `${date.getFullYear()}${date.getMonth() + 1}${date.getDate()}`;};// 3. 定义第二个函数,用于生成更详细的 title 属性const toTitleDate = (dateString) => {if (!dateString) return '';const date = new Date(dateString);// 返回完整的本地化日期时间字符串return date.toLocaleString();};// 4. 将数据和函数一起返回,以便模板可以访问它们return {post,formatDate,toTitleDate};}});app.mount('#app');
</script></body>
</html>

代码解释

  1. 数据 (post):我们在 setup 中定义了一个包含日期字符串 published 的响应式对象 post
  2. 函数 (formatDate, toTitleDate):我们定义了两个函数,它们都接收一个日期字符串作为参数,并各自返回不同格式的字符串。
  3. 返回: setup 函数最后返回一个对象,这个对象里包含了 post 数据和 formatDatetoTitleDate 这两个函数。这是关键一步,只有返回了,模板才能找到并调用它们。
  4. 模板调用:
    • {{ formatDate(post.published) }}:调用 formatDate 函数,并将 post.published 作为参数传入。函数的返回值 2025年7月2日 会被显示在页面上。
    • :title="toTitleDate(post.published)":调用 toTitleDate 函数,其返回值(一个更详细的日期,如 2025/7/2 05:30:00)被绑定到 <time> 元素的 title 属性上。当用户鼠标悬停时,浏览器会显示这个 title
    • :datetime="post.published":这里直接将原始的、机器可读的 ISO 格式日期绑定到 datetime 属性上,这对于 SEO 和可访问性是最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/90042.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/90042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端常用构建工具介绍及对比

打包构建工具是现代软件开发中必不可少的,它们帮助开发者自动化构建、打包、部署等流程,提升开发效率。不过,不同时期构建工具略有差异。 每个构建工具都有其擅长的领域,我们需要知道其优势,才能在我们实际开发中选择合适的构建工具进行构建处理。 1. Gulp Gulp 是一个…

Web后端开发-SpringBootWeb入门、Http协议、Tomcat

文章目录Web后端开发简介SpringBootWeb入门HTTP协议HTTP-概述HTTP-请求协议HTTP-响应协议HTTP-协议解析Web服务器-Tomcat简介基本使用SpringBootWeb入门程序解析Web后端开发简介 SpringBootWeb入门 package com.wuxuan.javaweb_wushuang.controller;import org.springframework…

物联网通信技术全景剖析:从LoRa到5G的深度对比与选型指南

物联网通信技术全景剖析&#xff1a;从LoRa到5G的深度对比与选型指南在万物互联时代&#xff0c;选择合适的通信技术如同为设备构建“神经网络”。本文将深入解析七大主流物联网通信技术&#xff0c;助您在技术选型中精准决策。一、低功耗广域网&#xff08;LPWAN&#xff09;技…

俄罗斯方块AI深度解析:从算法原理到实现细节

俄罗斯方块AI深度解析:从算法原理到实现细节 前言 俄罗斯方块,这个诞生于1984年的经典游戏,至今仍然是人工智能研究领域的热门课题。当简单的几何形状在网格中不断下落时,看似简单的规则背后却隐藏着复杂的策略决策问题。本文将深入剖析一个基于Python实现的俄罗斯方块AI…

Spring Boot 框架创建一个简单的后端接口,并介绍如何使用 Apifox 连接该接口

目录 一、配置 二、使用 IntelliJ IDEA 创建 Spring Boot 项目 1.打开 IntelliJ IDEA&#xff0c;选择 File > New > Project 2.在左侧面板选择 Spring Initializr&#xff0c;项目名称设置为HelloWorldAPI 3.点击 Create 完成项目创建 三、创建控制器类 四、运行项…

CICD[导航]、docker+gitlab+harbor+jenkins从安装到部署

一、安装 CICD[软件安装]&#xff1a;docker安装gitlab-CSDN博客 CICD[软件安装]&#xff1a;ubuntu安装jenkins-CSDN博客 CICD[软件安装]&#xff1a;ubuntu安装私有镜像仓库-Harbor-CSDN博客 CICD[软件安装]&#xff1a;ubuntu24安装Docker-CSDN博客 二、镜像执行 CICD[…

深度学习图像分类数据集—蘑菇识别分类

该数据集为图像分类数据集&#xff0c;适用于ResNet、VGG等卷积神经网络&#xff0c;SENet、CBAM等注意力机制相关算法&#xff0c;Vision Transformer等Transformer相关算法。 数据集信息介绍&#xff1a;蘑菇识别分类&#xff1a;[Agaricus, Amanita, Boletus, Cortinarius, …

iOS 多线程导致接口乱序?抓包还原 + 请求调度优化实战

在一次性能优化过程中&#xff0c;我们将 iOS App 内多处请求改为并行处理&#xff0c;以提高页面加载速度。但上线后却收到部分用户反馈&#xff1a;进入页面后数据加载错乱&#xff0c;有时展示前一次页面内容&#xff0c;有时同一个接口请求重复返回不同内容。 日志仅显示正…

PDFBox 在 Linux 报 “No glyph for U+535A (博)” —— 一次子集化踩坑与完整排查清单

PDFBox 在 Linux 报 “No glyph for U535A (博)” —— 一次子集化踩坑与完整排查清单关键词&#xff1a;PDFBox、PDType0Font、子集嵌入&#xff08;subset embedding&#xff09;、SimHei、思源黑体、字体回退1. 背景业务场景 后端使用 Apache PDFBox 填充含 AcroForm 的中文…

网安系列【8】之暴力破解入门

文章目录 引用资料一 什么是暴力破解&#xff1f;二 暴力破解的工作原理三 暴力破解的类型3.1 传统暴力破解3.2 字典攻击3.3 混合攻击3.4 彩虹表攻击 四 暴力破解实战演示4.1 环境和工具4.2 破解操作 五 防御暴力破解的策略六 暴力破解的相关法律七 延伸学习总结 引用资料 Bur…

使用tensorflow的线性回归的例子(四)

与经典线性回归比较 import matplotlib.pyplot as plt %matplotlib inline import tensorflow as tf import numpy as np from sklearn.linear_model import LinearRegression #from sklearn.datasets.samples_generator import make_regression Xdata np.array([4.0, …

服务器中故障转移机制是指什么意思?

在企业服务器和数据中心当中&#xff0c;电源冗余机制和故障转移机制是保障系统高可用性和稳定性的重要组成部分&#xff0c;电源故障转移系统可以帮助企业有效减少服务器因为硬件故障导致业务中断的情况&#xff0c;本文就来详细了解一下服务器中故障转移机制。服务器中的故障…

rook-ceph的osd没有启动rook-ceph-osd-prepare状态异常处理

rook-ceph搭建好ceph之后&#xff0c;查看ceph集群状态&#xff0c;发现三节点只有两个osd状态正常注&#xff1a;这里是已经恢复后的截图。 使用kubectl get pod -n rook-ceph查看pod都是处于运行状态 rook-ceph-osd-prepare也都是Completed没问题&#xff0c;实际使用kubectl…

ubuntu手动编译VTK9.3 Generating qmltypes file 失败

​在Ubuntu上手动编译VTK 9.3时&#xff0c;可能会遇到 Generating qmltypes file失败的问题。这个问题通常与VTK在处理Qt依赖时发生的错误有关。以下是解决该问题的详细步骤和相关解释。一、确保系统依赖正确安装在编译VTK之前&#xff0c;需要确保所有依赖项已经正确安装&…

计算机科学导论(1)哈佛架构

文章目录一、哈佛架构的定义与起源二、哈佛架构的核心组成与工作原理1. **物理结构&#xff1a;独立的存储与总线**2. **工作流程&#xff1a;并行处理的实现**三、哈佛架构与冯诺依曼架构的对比四、哈佛架构的优缺点分析1. **优势**2. **局限性**五、哈佛架构的实际应用场景1.…

VBScript 安装使用教程

一、VBScript 简介 VBScript&#xff08;Visual Basic Scripting Edition&#xff09;是微软推出的一种轻量级脚本语言&#xff0c;语法类似于 Visual Basic&#xff0c;广泛应用于系统管理、自动化脚本、网页客户端&#xff08;IE 专属&#xff09;以及 Windows 批处理等场景…

RSTP 拓扑收敛机制

RSTP拓扑收敛触发条件 RSTP中检测到拓扑变化只有一个标准&#xff1a;以一个非边缘端口迁移到Forwarding状态 收敛过程 为本交换设备的所有非边缘指定端口和根端口启动TC While Timer&#xff0c;该计时器是Hello Time&#xff08;默认2s&#xff09;的两倍&#xff0c;然后…

支持向量机(SVM)分类

支持向量机&#xff08;Support Vector Machine&#xff0c;SVM&#xff09;是一种经典的监督学习算法&#xff0c;主要用于分类任务&#xff0c;也可扩展到回归问题&#xff08;称为支持向量回归&#xff0c;SVR&#xff09;。其核心思想是通过寻找一个最优超平面&#xff0c;…

Linux操作系统从入门到精通!第二天(命令行)

一、Linux的命令行 1&#xff0e;Linux介绍&#xff1a;刚出世的时候&#xff0c;没有什么节目&#xff0c;所有的操作都是靠命令行来执行&#xff0c;后来Linux发展迅速&#xff0c;也出现了图形界面&#xff0c;但是由于命令行的执行速度比图形界面块&#xff0c;所以也得到了…

使用Go高效对接印度金融市场数据:K线、新股与实时行情开发指南

使用Go高效对接印度金融市场数据&#xff1a;K线、新股与实时行情开发指南 印度国家交易所&#xff08;NSE&#xff09;日均交易额超79亿美元&#xff0c;孟买交易所&#xff08;BSE&#xff09;覆盖上市公司超5000家&#xff0c;双交易所体系为投资者提供了丰富机会。本文基于…