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

  • 学习通可以上网课吗

    学习通可以上网课吗

  • word怎么添加阴影边框(word怎么添加阴影边框和底纹)

    word怎么添加阴影边框(word怎么添加阴影边框和底纹)

  • 微信不能用qq号注册了吗(微信不能用qq号注册登录吗)

    微信不能用qq号注册了吗(微信不能用qq号注册登录吗)

  • 三星2020怎么关机(三星2020怎么关机开机)

    三星2020怎么关机(三星2020怎么关机开机)

  • 关联qq号为什么看不到对方消息(关联QQ号为什么还要下线提醒)

    关联qq号为什么看不到对方消息(关联QQ号为什么还要下线提醒)

  • 小米手机怎么插sim卡(小米手机怎么插手机卡)

    小米手机怎么插sim卡(小米手机怎么插手机卡)

  • 苹果7和6splus对比(苹果7与6sp)

    苹果7和6splus对比(苹果7与6sp)

  • 超星泛雅和超星尔雅有什么区别(超星泛雅app最新版本)

    超星泛雅和超星尔雅有什么区别(超星泛雅app最新版本)

  • 数据结构在计算机中的表示称为数据的(数据结构在计算机内存中的表示是指)

    数据结构在计算机中的表示称为数据的(数据结构在计算机内存中的表示是指)

  • oppo查找手机显示离线什么意思(oppo查找手机显示所有设备均离线)

    oppo查找手机显示离线什么意思(oppo查找手机显示所有设备均离线)

  • 苹果11刚用为什么那么卡(苹果11刚用为什么会发烫)

    苹果11刚用为什么那么卡(苹果11刚用为什么会发烫)

  • mate30开发人员选项怎么设置(华为mate30开发者选项在哪里)

    mate30开发人员选项怎么设置(华为mate30开发者选项在哪里)

  • 企业id是什么(企业id是什么意思啊)

    企业id是什么(企业id是什么意思啊)

  • 以太网和本地连接有什么区别(以太网和本地连接是一个东西嘛)

    以太网和本地连接有什么区别(以太网和本地连接是一个东西嘛)

  • 苹果手机屏幕变白变淡(苹果手机屏幕变成黑色怎样调回来)

    苹果手机屏幕变白变淡(苹果手机屏幕变成黑色怎样调回来)

  • 隐藏会话后关联号可以看到吗(隐藏会话关联qq会提示吗)

    隐藏会话后关联号可以看到吗(隐藏会话关联qq会提示吗)

  • vivo手机媒体突然没有声音(vivo手机媒体声音小的解决方法)

    vivo手机媒体突然没有声音(vivo手机媒体声音小的解决方法)

  • 小米反馈回复在哪里看(小米手机的反馈回复在哪)

    小米反馈回复在哪里看(小米手机的反馈回复在哪)

  • 华为mate30pro音量键在哪(华为mate30pro音量大小怎么调节)

    华为mate30pro音量键在哪(华为mate30pro音量大小怎么调节)

  • oppo手机右上角显示无障碍是什么意思(oppo手机右上角有个耳机怎么去掉)

    oppo手机右上角显示无障碍是什么意思(oppo手机右上角有个耳机怎么去掉)

  • vivo手机相册怎样竖着排(vivo手机相册怎么显示日期)

    vivo手机相册怎样竖着排(vivo手机相册怎么显示日期)

  • 苹果7适不适合更ios12(苹果适不适合减肥吃)

    苹果7适不适合更ios12(苹果适不适合减肥吃)

  • 小米手机红包助手在哪(小米手机红包助手怎么设置)

    小米手机红包助手在哪(小米手机红包助手怎么设置)

  • WPS文档怎么自动生成目录(wps文档怎么自动换行)

    WPS文档怎么自动生成目录(wps文档怎么自动换行)

  • 华为分享怎么用详细教程

    华为分享怎么用详细教程

  • 企业购入免税农产品
  • 个体经营部可以开增值税专用发票吗
  • 盘亏的设备按正常报废处理是否符合会计制度要求
  • 资产负债表本月期末余额怎么填
  • 季报现金流量表是必报表吗
  • 自产自销农产品发票如何开具
  • 企业亏损法定盈亏是什么
  • 行政单位支出科目中组织事务是什么
  • 购买旧资产如何入账
  • 员工工资怎么计算公式
  • 营改增后取得施工作业收入需要交哪些税?
  • 计提固定资产减值准备属于什么支出
  • 借款合同印花税减免优惠政策
  • 什么发票可以用来抵税
  • 建筑企业之前的工作内容
  • 关于油票的纳税人识别号
  • 不能远程补报之前的税款所属期
  • 所有转让土地税怎么算
  • 商品流通企业批发销售会计分录
  • 外汇收汇怎么做账
  • 房地产预缴税金附加可以计提吗
  • 银行承兑汇票背书会计分录
  • 加计抵减政策销售额占比怎么算
  • 公司出售车辆
  • windows7怎么说
  • 系统安装的步骤
  • win10系统宽带连接错误720
  • 进入苹果icloud
  • win10蓝牙无法连接,有解决方法吗
  • win7旗舰版叫啥
  • 房产企业预售收入怎么做账务处理
  • 罚款在企业所得税前可以扣除吗
  • 城市维护建设税计入什么会计科目
  • jquery 滚动条
  • 专项储备计提和使用
  • 如何使用扫描王
  • 代开运输发票会不会造成重复征税
  • 交通费中的高速费指什么
  • 个人所得税汇算清缴
  • 销售折扣购物卡对公司财务的好处
  • 足浴店装修大概多少钱一平
  • 报销流程怎么走
  • 增值税留抵税额借贷方向
  • 收到服务费发票怎么做账
  • 小规模的认定标准
  • 研发费用形成无形资产的摊销怎么处理
  • 进项税转出怎么交税
  • 铁路运费印花税怎么算
  • 预付卡充值入什么科目
  • 增值税减免税款计入什么科目
  • 期初借款余额计算公式
  • 母公司与子公司关系
  • 航天信息开票软件客服
  • 客户收到产品后应该说什么
  • 买入返售证券什么意思
  • 债务重组的方式主要包括哪些
  • sql语句的查询语句
  • xp系统字体安装方法
  • kdeskcore.exe是什么
  • win7的开始菜单在哪里
  • ctd module
  • win10桌面添加画图图标
  • win7旗舰版u盘在电脑上读不出来
  • win7系统无法共享win10系统打印机
  • win10系统字体不清晰
  • win7系统桌面图标不见了怎么办
  • dosbox终止程序
  • cocos2dx减少内存开销
  • 老生常谈的错别字
  • JUnit in android
  • unity shader cull off
  • bat批处理文件的语句
  • unity后期
  • jquery切换css样式
  • 手游云测试工具有哪些
  • js数组entries
  • java learning
  • 税控盘登录密码和口令
  • 贵州房产备案信息查询网
  • 烟叶税额
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设