位置: IT常识 - 正文

vue在html标签 {{}} 中调用函数的方法(vue项目内html)

编辑:rootadmin
vue在html标签 {{}} 中调用函数的方法

目录

一、问题

1)实现上述需求:有两种方式

2)两种实现方式对比:

二、解决方法(在html渲染时调用函数)

 三、总结


推荐整理分享vue在html标签 {{}} 中调用函数的方法(vue项目内html),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue中标签,vue中的标签,vue的标签,vue的标签,vue html页面,vue项目内html,vue绑定html标签,vue的标签,内容如对您有帮助,希望把文章链接给更多的朋友!

注:不想仔细看的,可以直接看有颜色的及代码哟

一、问题

1.在html中对数据中的某一个标签是根据标签的类型书写的,值写在了{{}}中,希望显示的时候对值做某种细节处理。

例如:我的需求:后端返回姓名、年龄、出生日期、学历等组成的一个数组,出生日期要保存为带有时分秒的,但是显示时不需要时分秒。

1)实现上述需求:有两种方式

a.方式一:

直接在接口调用收到数据时判断数据类型,并对数据进行处理。

b.方式二:

在显示的时候再调用函数处理数据(html标签的{{}}中处理)

2)两种实现方式对比:

前提:由于有些要用输入框、有些要用下拉框,有些又要用日期选择框;我使用v-for渲染时就根据不同的控件类型分别渲染。

a.如果使用方式一就会二次对是否是出生日期的判断(第一次接收到数据去除时分秒要判断,第二次html渲染的时候判断);使用方式二则只需要对是否是出生日期进行一次判断(只在html渲染的时候判断)——方式二能减少 if-else书写的次数

b.如果数据还需要原样返回给后端,那么使用方式二显然是perfect,没有修改原数据,只是返回了想要的数据;使用方式一就必须存一个备份数据,如果需要单独处理的数据多了,简直就是一场灾难(保留一堆其实没必要保存的数据)——方式二保留了原始数据,避免了冗余数据

c.如果有很多地方需要进行同样的处理,函数无疑是更好的选择。——一次书写,多处调用,提高了代码的可维护性

所以选择方式二实现需求,怎样在html渲染时调用函数呢?

二、解决方法(在html渲染时调用函数)

1.定义处理函数

//与后端约定返回的数据格式是这样的:'2020-04-09 08:30:00' 年月日和时分秒之间用空格分隔export const formatBorntime=(borntime)=>{ //处理逻辑 //****** //返回处理好的数据 return borntime.split(" ")[0];}

2.引入处理函数,在data中定义函数,在html中使用

<template> <div v-for="(item,key) of personInfo"> <template v-if="key === 'borntime'"> <div class="info-title">{{ item.label }}</div> <span>:</span> <!-- 3.使用方法formatDateMethod--> <el-tooltip effect="dark" :content="formatDateMethod(new Date(item.value))).toString()" placement="top" > <!-- 3.使用方法formatDateMethod--> <div class="info-content"> {{ formatDateMethod(new Date(item.value)).toString() }} </div> </el-tooltip> </template> <template v-else> <div class="info-title">{{ item.label }}</div> <span>:</span> <el-tooltip effect="dark" :content="item.value.toString()" placement="top" > <div class="info-content"> {{ item.value }} </div> </el-tooltip> </template> </div></template><script>//1.引入处理出生日期显示的函数import { formatBorntime } from "@/utils/common";export default{ data(){ //2.在data中定义方法 formatDateMethod:formatBorntime, personInfo: { patientname: { label: "姓名", value: "", }, patientage: { label: "年龄", value: "", }, borntime: { label: "出生日期", value: "2022-04-06 00:00:00", }, height: { label: "身高(cm)", value: "", }, }, }}</script>vue在html标签 {{}} 中调用函数的方法(vue项目内html)

注:必须在data中定义  或者  methods中定义该方法,否则无法直接使用(报错:html中使用的函数不存在或不是响应式的)

1)在data中定义

  data(){     formatDateMethod:formatBorntime,

}

2)在methods中定义

  methods: {     formatDateMethod(params1){       return formatBorntime (params1);     }

  }

3.效果

4.优化

  ----------------------2022/11/21更新-------------------------------------------------------------------------------------

    上面的方法的确可以解决问题,但是更合理的方式是  使用 computed计算属性,computed中写处理逻辑(personInfo变化时,处理 borntime的格式)。

    原因:computed可以缓存计算结果,在borntime没有变化时,不会再次调用处理逻辑。而直接写的方法调用,在每次渲染HTML时都会被调用。computed 性能更好一些。

<template> <div v-for="(item,key) of personInfo"> <template v-if="key === 'borntime'"> <div class="info-title">{{ item.label }}</div> <span>:</span> <!-- 3.使用computed属性 borntime_deal --> <el-tooltip effect="dark" :content="borntime_deal" placement="top" > <!-- 3.使用computed属性 borntime_deal--> <div class="info-content"> {{ borntime_deal }} </div> </el-tooltip> </template> <template v-else> <div class="info-title">{{ item.label }}</div> <span>:</span> <el-tooltip effect="dark" :content="item.value.toString()" placement="top" > <div class="info-content"> {{ item.value }} </div> </el-tooltip> </template> </div></template><script>//1.引入处理出生日期显示的函数import { formatBorntime } from "@/utils/common";export default{ data(){ personInfo: { patientname: { label: "姓名", value: "", }, patientage: { label: "年龄", value: "", }, borntime: { label: "出生日期", value: "2022-04-06 00:00:00", }, height: { label: "身高(cm)", value: "", }, }, }, computed:{ // 2.根据 personInfo.borntime.value 处理 borntime的格式(因为要渲染整个personInfo,所以personInfo一定是变化的,可以正确拿到borntime) borntime_deal(){ return formatBorntime(personInfo.borntime.value).toString() } }}</script> 三、总结

1.我也是今天遇到上面这个需求,突然想到这样做。对比中第二点说的问题:其实之前遇到过类似的问题,有的地方需要对数据处理,有的地方又要保留原始数据,但是还备份了一组数据,现在想想就是给自己制作麻烦,还浪费了空间……

/*

希望对你有帮助!

如有错误,欢迎指正,谢谢!

*/

本文链接地址:https://www.jiuchutong.com/zhishi/298655.html 转载请保留说明!

上一篇:自动驾驶决策规划-控制方向学习资料总结(附相关资料的链接)(自动驾驶决策规划技术理论与实践电子版)

下一篇:SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者(sql server2016使用)

  • 安卓手机格式化能解决卡的问题吗(安卓手机格式化)(安卓手机格式化了怎么恢复数据)

    安卓手机格式化能解决卡的问题吗(安卓手机格式化)(安卓手机格式化了怎么恢复数据)

  • 如何关闭breeno速览(如何关闭breeno速览功能)

    如何关闭breeno速览(如何关闭breeno速览功能)

  • qos类型选哪个(qos1)

    qos类型选哪个(qos1)

  • 手机突然声音变小了怎么办(手机突然声音变小怎么办)

    手机突然声音变小了怎么办(手机突然声音变小怎么办)

  • 魅蓝手机自动静音是为什么(魅蓝e3自动静音)

    魅蓝手机自动静音是为什么(魅蓝e3自动静音)

  • 苹果xr卡屏关不了机(苹果xr卡屏不动也重启不了)

    苹果xr卡屏关不了机(苹果xr卡屏不动也重启不了)

  • qq会员已付款能退吗(qq会员付款成功为什么不生效)

    qq会员已付款能退吗(qq会员付款成功为什么不生效)

  • 连接蓝牙需要网络吗(连接蓝牙需要网络信号吗)

    连接蓝牙需要网络吗(连接蓝牙需要网络信号吗)

  • 飞行模式能连wifi吗(飞行模式能连airpods吗)

    飞行模式能连wifi吗(飞行模式能连airpods吗)

  • 全民k歌怎么撤回私信(全民k歌怎么撤回发布的作品)

    全民k歌怎么撤回私信(全民k歌怎么撤回发布的作品)

  • 慈音短视频是京东旗下的么(慈音短视频什么时候开始的)

    慈音短视频是京东旗下的么(慈音短视频什么时候开始的)

  • javascriptalert是什么意思(javascript:alert)

    javascriptalert是什么意思(javascript:alert)

  • 快手两个手机同时登录一个账号(快手两个手机同步吗)

    快手两个手机同时登录一个账号(快手两个手机同步吗)

  • 四个视频同框怎么做

    四个视频同框怎么做

  • 手机怎么设置无线不让别人用(手机怎么设置无信号模式)

    手机怎么设置无线不让别人用(手机怎么设置无信号模式)

  • iaf认证是什么作用(iaf认证标志的意思)

    iaf认证是什么作用(iaf认证标志的意思)

  • 华为p30pro的卡槽在哪里(华为p30pro的卡槽在哪里怎么打开)

    华为p30pro的卡槽在哪里(华为p30pro的卡槽在哪里怎么打开)

  • cpu通常包括什么(cpu主要包括什么)

    cpu通常包括什么(cpu主要包括什么)

  • 抖音注销账号如何恢复(抖音注销账号如何取消关注)

    抖音注销账号如何恢复(抖音注销账号如何取消关注)

  • 计算机存储系统一般指(计算机存储系统的三级结构)

    计算机存储系统一般指(计算机存储系统的三级结构)

  • 钉钉扫码功能在哪里(钉钉扫码功能在哪里 钉钉在哪里打开扫码功能)

    钉钉扫码功能在哪里(钉钉扫码功能在哪里 钉钉在哪里打开扫码功能)

  • pcb布线技巧(pcb布线规则和技巧在哪里学)

    pcb布线技巧(pcb布线规则和技巧在哪里学)

  • iphonex没有128g吗(iPhonex没有128G吗)

    iphonex没有128g吗(iPhonex没有128G吗)

  • 快手下载别人的作品怎么去水印(快手下载别人的视频作者会知道吗)

    快手下载别人的作品怎么去水印(快手下载别人的视频作者会知道吗)

  • deepin linux怎么切换到root权限? Deepin切换root用户的技巧(deepin切换系统)

    deepin linux怎么切换到root权限? Deepin切换root用户的技巧(deepin切换系统)

  • 递延所得税负债账务处理
  • 小规模纳税人可以开什么发票
  • 月末存款余额
  • 孳息和利息的区别
  • 企业之间借款利息进项税可以抵扣吗
  • 保险费计入什么会计科目需要发票吗
  • 房租押金不退还怎么处理
  • 车船税滞纳
  • 企业付装修费怎么入账
  • 银行每年存款任务
  • 跨年发票能否次年入账
  • 附加税的计税依据是销项减进项吗
  • 个人公益性捐赠全额还是限额
  • 收到汇算清缴退税的现金流量
  • 应交税费有余额怎么结转
  • 到期赎回的理财有风险吗
  • 发票金额大于实付金额,要怎么入账
  • 预付工程款计入在建工程吗
  • 增值税专用发票有几联?
  • deepin安装win
  • mac清理所有数据
  • 应收账款 预收账款合并
  • explorer进程作用
  • 购货返利怎么做账
  • 代理的认定
  • 公司支付保洁费可以付给个人吗
  • PHP:iconv_mime_decode()的用法_iconv函数
  • 固定资产自行建造的会计处理
  • 发票开具的法定义务是什么
  • PHP:imagepolygon()的用法_GD库图像处理函数
  • 预付装修款账务处理
  • 公司股东年底分红怎么做账
  • yolov1代码
  • 怎样创建一个网站
  • php面向对象的三大特征
  • 递延所得税负债是什么科目
  • 小规模纳税人结转未交增值税
  • php常用array函数
  • javaweb会话跟踪技术有哪些
  • 个税手续费会计分录
  • acpi disabled
  • 购入支票号码和使用支票号码是什么
  • 技术服务费发票图片
  • python3.9怎么删除
  • 经典帝国cms生成器下载
  • 进项与销项区别
  • 收入重复开票跨年了怎么处理
  • 固定资产属于有形还是无形资产
  • 制作费开票属于什么编码类型
  • 管理费用主要核算内容包括什么?
  • 新成品油发票开具的模块解密是?
  • 税务企业类型分为哪几种
  • 增值税是指哪些税种
  • 外来原始凭证包括一次凭证,累计凭证和汇总凭证
  • 房租收入税费
  • 印花税是怎么缴纳
  • 销售费用的主要构成
  • 财务常见问题有哪些
  • oracle序列修改初始值
  • sql转换
  • 无法将此电脑升级到最新版本的windows10
  • 远程桌面安装
  • win7任务管理器是灰色的
  • win10光驱无法识别
  • linuxsu命令作用
  • 联想电脑win7系统开机修改开机密码
  • perl编程
  • perl中use strict
  • opengl 实现
  • json的parseobject
  • jquery 字符串以什么开头
  • 命令行批处理文件
  • androidui框架
  • unity ugui ngui
  • APP中javascript+css3实现下拉刷新效果
  • python中的格式化输出用法总结
  • 江苏常州税务局电话人工服务电话
  • 郑州金水区税务大厅电话
  • 武汉洪山实验中学是初中还是高中
  • 浙江省国税局地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设