模板,数据和指令

三者的英文名称也有必要列举一下:

  • 模板: Template
  • 数据:Data
  • 指令:Directive

在学习Vue的概念框架时,要时刻回想到Vue的核心是什么。

Vue的核心是将数据显示到页面上。

为达到这一目的,我们使用模板来实现。

而为普通的HTML添加特殊属性,则需要借助指令来完成。

指令非常强大,可以用它来告诉Vue要实现的效果以及如何处理提供给Vue的数据。

下面看个例子:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body><div id="app"><p v-if="isMorning">早上好!</p><p v-if="isAfternoon">中午好!</p><p v-if="isEvening">下午好!</p></div><script>var hours = new Date().getHours()var app = new Vue({el: '#app',data: {isMorning: hours < 12,isAfternoon: hours >= 12 && hours < 18,isEvening: hours >= 18},created() {// 应用启动时执行console.log("应用启动...")}})</script>
</body>
</html>

div中,可以用v-if来做判断,使用定义在data字段中的属性来决定输出的结果。

不过这种写法本身并不是响应式编程,因为随着时间变化,页面并不会随之更新。

就上面这种写法而言,可以优化为下面的方式:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title><script src="https://cdn.jsdelivr.net/npm/vue"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script> 生产环境 -->
</head>
<body><div id="app"><p v-if="hours < 12">早上好!</p><p v-if="hours >= 12 && hours < 18">中午好!</p><p v-if="hours >= 18">下午好!</p></div><script>var app = new Vue({el: '#app',data: {hours: new Date().getHours()},created() {// 应用启动时执行console.log("应用启动...")}})</script>
</body>
</html>

核心在于,虽然v-if后面跟着的是字符串,但是能用被el指向的Vue实例中定义的数据。

通过这两个简单例子,可以看到一种编程模式:在JS中实现业务逻辑,在模板中实现视图逻辑。

暂时还没开始的话题是,计算属性,后面会展开。

小总结

模板就是能够用非HTML元素编码的显示标签,这和在Python Flask框架中用得到的Jinja模板是相同的道理,在模板中使用的简单的逻辑称之为指令。在JS代码块中定义函数和数据,主要关注的是业务逻辑。

参考

《Vue.js快跑:构建触手可及的高性能Web应用》

END.

Vue模板,数据和指令相关推荐

  1. vue 模板 html 表达式,Vue 模板template、指令directive、修饰符

    模板 template template的三种写法 写法一:Vue完整版,写在HTML里 //html {{n}} +1 //vue new Vue({ el: '#xxx', data(){ ret ...

  2. Vue基础——VueJS是什么、Vue的优缺点、vue2和vue3的模板区别、MVVM数据双向绑定、Vue的安装和使用、Vue模板语法-文本渲染、常用的vue的指令

    目录 一.VueJS是什么? 二.Vue的优缺点 三.MVVM 数据双向绑定 四.Vue的安装和使用 五.Vue模板语法-文本渲染 六.常用的vue的指令 一.VueJS是什么? 它是一个轻量级MVV ...

  3. vue.js 数据替换_Vue.js实战笔记之Vue内置指令

    指令是Vue模板中最常用的一项功能,它带有前缀v-,主要职责是当其表达式的值改变时,相应的将某些行为应用在 DOM 上. 基本指令 v-clock v-clock 不需要表达式,它会在 Vue 实例结 ...

  4. 怎么将vue模板转换为html,vue中自定义html文件的模板

    如果默认生成的 HTML 文件不适合需求,可以创建/使用自定义模板. 一是通过 inject 选项,然后传递给定制的 HTML 文件.html-webpack-plugin 将会自动注入所有需要的 C ...

  5. vue 模板字符串循环_使用React四年后转而使用Vue,是一种什么样的体验?

    全文共1825字,预计学习时长5分钟 图源:unsplash 过去四年来,笔者都是用React框架工作,最近开始使用Vue了.尽管两者有一些概念上的差异--Vue受到了Angular的影响,但在Rea ...

  6. 用vue语法写html,Vue -- 模板语法

    Vue 模板语法 1.vue 和大多数后台语言,甚至是和art-template 这种前端模板库一样,都有一套,特定的语法来把数据渲染在html上. Mustache -- 大胡子语法 1.大胡子的语 ...

  7. Vue.js 内置指令

    回顾一下第2.2节,我们己经介绍过指令(Directive)的概念了,Vue.js的指令是带有特殊前缀v-的HTML特性,它绑定一个表达式,并将一些特性应用到DOM上. 其实我们已经用到过很多Vue内 ...

  8. vue模板语法是什么?

    在项目中,可以看到很多.vue结尾的文件,它们是什么呢? 1)vue文件是单文件组件 后缀名是.vue webpack会使用额外的loader来处理它 一个.vue文件就是一个组件(页面) 整个项目( ...

  9. 前端进阶_狂神Vue笔记_语法指令v-bind、v-on、v-for_表单双绑_组件_Axios异步通信_Vue的生命周期_计算属性_插槽 <slot>_webpack使用_vue-router路由

    四.第一个Vue程序 4.1.什么是MVVM MVVM(Model-View-ViewModel)是一种软件设计模式,由微软WPF(用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Si ...

最新文章

  1. word笔记之选择性粘贴-设置默认粘贴为当前格式
  2. dreamweaver连接mysql数据库 发生一个不知名错误_用DREAMWEAVER连接数据库测试时总是弹出发生一个不知名的错误 你好! 请问一下这个问题你是怎么解的?...
  3. 每天一小时python官方文档学习(六)————循环和条件控制的进阶用法
  4. 部署flas到服务器:No module named flask
  5. codeforces 111A/112C Petya and Inequiations
  6. SAP License:备选统驭科目问题
  7. Can't use Subversion command line client:svn
  8. 论文阅读:Spatial context-aware network for salient object detection
  9. librtmp linux下 编译,LibRtmp编译并导入Android Studio
  10. 如何把应用程序变成.exe执行文件
  11. 《系统之美》— 忒修斯悖论
  12. 【[中文直播] 第21期 | UE4数据驱动开发 | Epic 大钊】课程笔记
  13. 使用graphicsmagick时gm命令被占用
  14. 数据挖掘(python实现)—认识数据
  15. 布尔 (boolean) 型变量只能取两个值,True 和 False。当把布尔型变量用在数字运算中,用 1 和 0 代表 True 和 False。
  16. 用systemtap研究内核
  17. 日语N5级别所有一类动词原形
  18. 孝心无价 ——《为了母亲的微笑》序言
  19. How project description length and expected duration affect bidding and project success 论文笔记
  20. C#屏幕录制图像处理:(包含鼠标图像录制)

热门文章

  1. LeetCode-21.合并两个有序链表(链表+递归)
  2. php反向解析域名,域名系统 – Cloudflare,反向DNS和php邮件,最终在垃圾邮件文件夹中...
  3. 真正的研发之路(1)
  4. oracle数据块坏,Oracle数据块损坏解决办法
  5. linux下mysql数据库目录迁移_mysql实现linux下数据库目录迁移
  6. pandas 导入excel_三行Python代码,合并多个Excel文件
  7. python静态递归函数_Python递归函数
  8. java socket 断开连接_Socket.IO-client.java重复断开连接并重新连接
  9. 通过命令行启动uwp应用
  10. 文件和目录(一)--unix环境高级编程