位置: 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使用)

  • ppt自动切换下一页怎么取消(ppt自动切换下一页快捷键)

    ppt自动切换下一页怎么取消(ppt自动切换下一页快捷键)

  • 京东企业账户怎么注册(京东企业账户怎么充值)

    京东企业账户怎么注册(京东企业账户怎么充值)

  • 钉钉回放一般保存几天(钉钉回放保留多长时间)

    钉钉回放一般保存几天(钉钉回放保留多长时间)

  • 华为荣耀20pro怎么录屏(华为荣耀20pro怎么样)

    华为荣耀20pro怎么录屏(华为荣耀20pro怎么样)

  • 语音录屏没声音怎么办(苹果语音录屏没声音)

    语音录屏没声音怎么办(苹果语音录屏没声音)

  • 苹果可以有两个微信软件吗(苹果可以有两个微信吗)

    苹果可以有两个微信软件吗(苹果可以有两个微信吗)

  • 荣耀品牌是华为系列吗(荣耀是品牌吗)

    荣耀品牌是华为系列吗(荣耀是品牌吗)

  • amd怎么看生产日期(amd怎么看生产日期和保修)

    amd怎么看生产日期(amd怎么看生产日期和保修)

  • 华硕路由器亮红灯(华硕路由器亮红灯啥意思)

    华硕路由器亮红灯(华硕路由器亮红灯啥意思)

  • 云充吧能不能异地还(云充吧使用方法)

    云充吧能不能异地还(云充吧使用方法)

  • 戴尔怎么设置u盘启动(戴尔怎么设置U盘为第一启动项)

    戴尔怎么设置u盘启动(戴尔怎么设置U盘为第一启动项)

  • 抖音初始密码是多少(抖音账号初始密码是多少)

    抖音初始密码是多少(抖音账号初始密码是多少)

  • iphonem开头的是什么机(iphone m开头)

    iphonem开头的是什么机(iphone m开头)

  • 新中付怎么用(新中付怎么刷信用卡)

    新中付怎么用(新中付怎么刷信用卡)

  • qq上收到的礼物怎么用(qq收到的礼物别人可以看到吗)

    qq上收到的礼物怎么用(qq收到的礼物别人可以看到吗)

  • 酷喵怎么投屏(酷喵怎么投屏到电视上面)

    酷喵怎么投屏(酷喵怎么投屏到电视上面)

  • iqoo充电特效怎么设置(iqoo充电特效怎么换)

    iqoo充电特效怎么设置(iqoo充电特效怎么换)

  • iphonexs有指纹解锁吗(苹果xs的指纹解锁)

    iphonexs有指纹解锁吗(苹果xs的指纹解锁)

  • 华为mate30使用什么系统(华为mate30用起来怎么样)

    华为mate30使用什么系统(华为mate30用起来怎么样)

  • 小米手机拍照实况模式在哪里(小米手机拍照实验室功能)

    小米手机拍照实况模式在哪里(小米手机拍照实验室功能)

  • win10自动修复死循环(win10自动修复不成功一直重启)

    win10自动修复死循环(win10自动修复不成功一直重启)

  • 小米手机怎么调屏幕分辨率(小米手机怎么调大字体)

    小米手机怎么调屏幕分辨率(小米手机怎么调大字体)

  • web期末大作业--网页设计 HTML+CSS+JS(附源码)(web期末大作业源代码)

    web期末大作业--网页设计 HTML+CSS+JS(附源码)(web期末大作业源代码)

  • JavaScript中的点击事件(js点击li)

    JavaScript中的点击事件(js点击li)

  • php如何调用api接口?(phpapi接口调用)

    php如何调用api接口?(phpapi接口调用)

  • 加计扣除和研发费不一致
  • 销售货物未开发怎么处理
  • 限售股流通股
  • 破产清算收到的实收资本是破产资产吗
  • 由于生产工艺改进引起建筑物设备陈旧
  • 分公司的人员构成
  • 营改增劳务派遣
  • 公司贷款买车后影响公司收购吗
  • 旅行社开具会议费发票可以差额征税吗
  • 商品混凝土增值税政策
  • 委托加工物资手续费
  • 劳务派遣一般纳税人可以简易征收吗
  • 上个月的费用这个月开发票怎么做账
  • 资产评估溢价部分如何处理?
  • 个人给公司付款怎么做分录
  • 车辆购置税完税证明电子版二维码怎么扫
  • 发票单据流水号
  • 资源税的征税对象和纳税环节
  • 车辆购置税计入固定资产一起折旧吗
  • 其他应付款辅助核算怎么挂
  • 一般纳税人转为小规模纳税人后还可以转为一般纳税人吗
  • mac安装软件不用密码
  • linux的sed命令
  • 升级鸿蒙系统后
  • 合伙企业财产清算顺序
  • windows 11怎么用
  • 鸿蒙3.0手机适配名单荣耀
  • PHP:oci_lob_is_equal()的用法_Oracle函数
  • Win11安卓子系统怎么安装apk
  • 收到银联商务付款短信
  • 其他应付款转营业外收入需要交增值税吗
  • 差额部分 扣除部分
  • nicconfigsvc.exe - nicconfigsvc是什么进程 有什么用
  • 行政事业单位的主要经济业务活动有哪些
  • 销售地下车库缴纳哪些税
  • querywrapper多表联查
  • php和mysql关系
  • 超像素和markpage的区别
  • 持有至到期投资是什么意思
  • 注意力机制加在什么位置
  • wordpress mobile themes
  • c语言 *指针
  • 季节性停工计入当期损益吗
  • 帝国cms如何使用
  • 产品管理部门职责
  • 印花税减免优惠政策2019
  • 一般纳税人企业所得税怎么征收
  • 用友t3建立新的帐套的流程
  • 安装sql server 2008提示重新启动计算机
  • 注册资本认缴到期
  • 营改增后土地出让增值税
  • 净资产增加数怎么计算
  • 汽车销售公司赠车合法吗
  • 小规模纳税人开专票税率是多少?
  • 暂估入库怎么处理
  • 物业所在地是指物业住所地吗
  • 年终奖个税计税方式
  • 委托加工物资的加工费计入什么科目
  • 出口退税进项票跨月勾选
  • 虚拟模块
  • 可供出售金融资产和交易性金融资产
  • 处置固定资产损失的账务处理
  • 填写记账凭证内容摘要的三个要素
  • windows server 2008 64位MySQL5.6免安装版本配置方法图解
  • bios的含义
  • 微软推送windows 11
  • xp系统的本地连接
  • win10系统自带的浏览器叫什么
  • vim编辑器命令大全
  • js调用音频文件
  • 如何实现仁
  • 及将上市的手机
  • 如何获取硬盘所有文件的列表
  • 批处理设置ip地址配置的dns
  • 简略说明本岗位最高风险的防范措施和现场处置方案
  • javascript用什么写
  • jquery和angularjs的区别
  • python线程启动和暂停
  • android基于
  • 宁波国税发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设