今天来正式开始 vue的学习,首当其冲的当然是数据的渲染。毕竟数据就是拿来看的,看看如果使用 vue来展示数据。

为什么渲染

俗话说 "人靠衣装马靠鞍", 那咱们的代码就是得靠 UI 来展现了。实现的代码规不规范,表不标准那是后话。但必须要好看~(开个玩笑,代码同样要注意整洁与优雅噢)

数据无论放在后台、数据库还是缓存,对于用户而言都不知情。用户能够感受到的,就是 UI,因此我们的数据是需要渲染在页面上显示出来给用户看的。

题外话:很久之前,老师就经常提起一句话,文不如字,字不如表,表不如图。细来想想,这句话也是可以放在程序设计中的,尤其是面向用户的层面。

如何渲染

在 vue 中,自带了模板渲染,而模板的语法也非常简洁易懂。

在此之前,先来看看要做哪些准备工作。

  • 渲染的语法是 {{ 要渲染的内容 }},要渲染的内容被两对花括号包了起来。
  • 要渲染的数据必须是 this 作用域可访问到的,简单的使用我们可以换一句话来约束:要渲染的数据请放在 data()中(此描述仅为简化在初学之时涉及知识过广的问题,现在只专注于渲染)。

简单渲染

我们首先在 data() 中定义我们需要渲染的字段,并给其赋一个初始值。

data() {return {msg: 'hello vue'}
}

接下来在页面中,使用我们已经定义的字段,将其渲染在页面上。

{{ msg }}

代码如下:

<template><div><h1>{{ msg }}</h1></div>
</template>

效果如下:

优点:

  • 代码简单

缺点:

  • 只能直接渲染

表达式渲染

当我们的数据需要某种单独的处理时,简单渲染就不能满足我们的要求了。

此时我们可以选择使用 "表达式" 进行渲染。

比如说在渲染列表项时,我们需要显示序号。而数组的下标是从 0 开始,但是显示序号又是从 1 开始的。

此时我们可以进行如下操作:

<h1>{{ index + 1 }}</h1>

此时所有的序号就是从 1 开始的了,很完美。

在文中例子基础上,在渲染的数据前面显示提示性文字 "标题:"。

<h1>{{ "标题:" + msg }}</h1>

效果如下:

优点:

  • 对数据进行多样化的处理

缺点:

  • 造成大量的硬编码,不利于维护和重构

  • 相同处理逻辑会产生大量重复代码。

函数渲染

使用表达式渲染适合某类需要特殊处理的数据,并且这个处理不具备通用性

那么针对表达式渲染的缺点,尤其是重复代码的问题,我们可以对其进行封装

现在我们有一个时间类型的字段:

data() {return {time: new Date()}
}

看看简单渲染的效果:

这好像和我们想的不太一样啊,一般显示的格式是:

2019-07-01 20:54:45

这两个差距有点大啊,先用表达式渲染来处理一下达到要求的格式:

{{ time.getFullYear() + "-" + time.getMonth() + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds() }}

这么长一串的代码,看看能否达到要求的效果:

不是很完美!月和日这里没有做填充处理,所以不是很好的匹配要求。

这个时候,你发现系统中还有 n 个页面需要格式化时间!!!难道要一个个复制?那可能下一个维护代码的人要掏出他30米长的大刀来找你了。

面对这种具备通用性或者是大量重复的处理逻辑,就可以将其抽成一个函数:

methods: {formatTime: function(date) {return date.getFullYear() + "-" + date.getMonth() + "-" + date.getDate() + " " + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();}}

这里要注意,在 vue中,函数需要定义在 methods对象内,才能在作用域内调用。

下面来看看效果,和上面的一样:

优点:

  • 逻辑可封装,利于维护和重构。

  • 写法简单。

缺点:

  • 都能用函数了,还要啥自行车。

能不能写js逻辑呢,不如说if?

百闻不如一见?让我们看看下面的代码会显示什么:

<h1>{{ if(msg == '1') return time }}</h1>

当设置 msg 的值为 1 的时候, 返回时间?

嗯,显示的内容很出乎意料,报错了~

毕竟 vue 官方文档在最开始就说了,这是一个简洁的模板语法,可以支持函数表达式渲染,已经能解决绝大多数的问题了。至于在渲染时带逻辑? 那可能需要好好看看 vue文档了,官方有对策噢。

转载于:https://www.cnblogs.com/By-ruoyu/p/11104092.html

浅入深出Vue:数据渲染相关推荐

  1. 浅入深出Vue:环境搭建

    浅入深出Vue:环境搭建 工欲善其事必先利其器,该搭建我们的环境了. 安装NPM 所有工具的下载地址都可以在导航篇中找到,这里我们下载的是最新版本的NodeJS Windows安装程序 下载下来后,直 ...

  2. 浅入深出Vue:子组件与数据传递

    上一篇了解了组件的概念及在使用中需要注意的地方.在面对单个组件逻辑复杂需要拆分时,难免会遇到父子组件之间数据传递的问题.那么我们来了解一下在父子组件之间进行数据传递时需要遵循哪些约定,以及要注意哪些问 ...

  3. 浅入深出Vue:事件处理

    上一篇的最后留下了一个 v-on的思考,也就是本章的主题:事件处理 为什么需要事件处理 在前端开发中,经常要面对各种表单.按钮.而这里面就住着一个事件:点击 (click). 前端童鞋们肯定不陌生它, ...

  4. 浅入深出Vue:注册

    基本布局已经有了, 现在我们来开始做我们的注册页面~ 当然需要注册才能发表文章啊(糟老头子坏得很, 我可以只有我一个人能发啊). 这里我们设定只有注册才能发表文章,也就淡化了管理员这个概念.在开发中先 ...

  5. 浅入深出Vue:文章编辑

    登录与注册功能都已经实现,现在是时候来开发文章编辑功能了. 这里咱们就使用 markdown 作为编辑语言吧,简洁通用.那么我们就需要找一下 markdown 的编辑器组件了,而且还要支持 vue噢. ...

  6. 浅入深出Vue:发布项目

    项目完成之后,当然不能满足于在我们的开发环境下跑一跑.我们可以打包发布到服务器上,让大家一起来欣赏一下你的作品. 那么 vue 项目如何打包发布呢,新建的项目目录下通常都有一个 README.md 的 ...

  7. 浅入深出之Java集合框架(上)

    Java中的集合框架(上) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  8. 浅入深出之Java集合框架(中)

    Java中的集合框架(中) 由于Java中的集合框架的内容比较多,在这里分为三个部分介绍Java的集合框架,内容是从浅到深,如果已经有java基础的小伙伴可以直接跳到浅入深出之Java集合框架(下). ...

  9. 处理中文乱码_浅入深出:一次提问引发的深思,从此再也不怕“乱码”问题

    这是恋习Python之浅入深出系列第3篇原创首发文章 作者|丁彦军 来源|恋习Python(ID:sldata2017) 转载请联系授权(微信ID:2394608316) 近日,有位粉丝向我请教,在爬 ...

  10. Angular浅入深出系列 - 写在前面

    本系列目录: 写在前面 基础知识 控制器(Controller) 作用域(Scope) 集合(Collection) 模块(Module) 依赖注入(Dependency Injection) 服务( ...

最新文章

  1. 研究人员提出增强Wi-Fi传输的新方法
  2. c/c++/MFC 调用 js 函数代码
  3. Linux参数顺序,【每日一linux命令3】参数(或称选项)顺序
  4. WCF(学习笔记)【参见WCF教程】
  5. 两个线程,一个线程打印1~52,另一个线程打印字母A-Z,打印顺序为12A34B56C……5152Z...
  6. [转]xargs详解
  7. 前端学习(2336):angular之传递参数
  8. mac mysql 安装 简书_在Mac系统上配置MySQL以及Squel Pro
  9. 笨办法学 Linux 引言
  10. 【论文复现】Character-level Convolutional Networks for Text Classification
  11. iOS开发判断字符串为null
  12. HTMLUnit爬虫模拟登录Linkedin
  13. 短视频系统+购物直播APP开发方案
  14. Spring源码解析之AOP篇(一)----代理模式详解
  15. 阿里云ECS训练营Class6
  16. Electron加密打包文件
  17. java-操作 Excel
  18. 基于树莓派+STM32+OneNET云平台打造智能家居系统(一)硬件设计篇
  19. Web 函数自定义镜像实战:构建图象处理函数
  20. Linux赋予用户读写权限

热门文章

  1. java解析XML【转载】
  2. C#中判断字符是否为中文
  3. 项目交付:把Python项目打包成exe文件供客户使用然后收钱
  4. 提升效率小工具,我用30分钟就干完一天的活
  5. 目前最全的R语言-图片的组合与拼接
  6. json读取json文件,上传到后台
  7. 七 、Quartz 2D Bitmap上下文
  8. c语言详解  蔡勒(Zeller)公式计算某一天是星期几  极其方便
  9. VS模板导入导出 提高工作效率
  10. 技术要求→物理安全→防雷击