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
英文地址,請注明出處:http://en.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;雙交易所體系為投資者提供了豐富機會。本文基于…