声明式渲染

在 Scrimba 上尝试这节课

Vue.js 的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进 DOM 的系统:

  1. <div id="app">
  2. {{ message }}
  3. </div>
  1. var app = new Vue({
  2. el: '#app',
  3. data: {
  4. message: 'Hello Vue!'
  5. }
  6. })

声明式渲染 - 图1

我们已经成功创建了第一个 Vue 应用!看起来这跟渲染一个字符串模板非常类似,但是 Vue 在背后做了大量工作。现在数据和 DOM 已经被建立了关联,所有东西都是响应式的。我们要怎么确认呢?打开你的浏览器的 JavaScript 控制台 (就在这个页面打开),并修改 app.message 的值,你将看到上例相应地更新。

除了文本插值,我们还可以像这样来绑定元素特性:

  1. <div id="app-2">
  2. <span v-bind:title="message">
  3. 鼠标悬停几秒钟查看此处动态绑定的提示信息!
  4. </span>
  5. </div>
  1. var app2 = new Vue({
  2. el: '#app-2',
  3. data: {
  4. message: '页面加载于 ' + new Date().toLocaleString()
  5. }
  6. })

声明式渲染 - 图2

这里我们遇到了一点新东西。你看到的 v-bind 特性被称为指令。指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性。可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title 特性和 Vue 实例的 message 属性保持一致”。

如果你再次打开浏览器的 JavaScript 控制台,输入 app2.message = '新消息',就会再一次看到这个绑定了 title 特性的 HTML 已经进行了更新。