一、vue.js介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

二、安装

在用 Vue 构建大型应用时推荐使用 NPM 安装。NPM 能很好地和诸如 webpackBrowserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件

  1. # 最新稳定版
  2. $ npm install vue

命令行工具 (CLI)

Vue 提供了一个官方的 CLI,为单页面应用 (SPA) 快速搭建繁杂的脚手架。它为现代前端工作流提供了开箱即用的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint 校验,以及生产环境可用的构建版本。更多详情可查阅 Vue CLI 的文档

三、vue的helloworld

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <!--<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>-->
  8. <script src="./vue.js"></script>
  9. <body>
  10. <div id="app">
  11. {{ message }}
  12. </div>
  13. </body>
  14. <script>
  15. var app = new Vue({
  16. el: '#app',
  17. data: {
  18. message: 'Hello Vue!'
  19. }
  20. })
  21. </script>
  22. </html>

四、数据和方法

数据可以直接通过{{}}进行原样展示

也可以绑定style行内样式

还可以绑定标签的属性

  • 生命周期钩子函数,如 created, mounted, destory之类
  • 生命周期钩子函数到了vue实例的一定时间点会自动执行
  • 生命周期钩子函数定义的位置在VUE实例的根属性上
  • 一般的自定义方法定义在methods属性中

    五、生命周期

    image.png

    六、模板语法-插值

    文本

    数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值:
    <span>Message: {{ msg }}</span>
    
    Mustache 标签将会被替代为对应数据对象上 msg property 的值。无论何时,绑定的数据对象上 msg property 发生了改变,插值处的内容都会更新。

通过使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。但请留心这会影响到该节点上的其它数据绑定:

<span v-once>这个将不会改变: {{ msg }}</span>

原始 HTML

双大括号会将数据解释为普通文本,而非 HTML 代码。为了输出真正的 HTML,你需要使用 v-html指令:

<p>Using mustaches: {{ rawHtml }}</p>
<p>Using v-html directive: <span v-html="rawHtml"></span></p>

这个 span 的内容将会被替换成为 property 值 rawHtml,直接作为 HTML——会忽略解析 property 值中的数据绑定。注意,你不能使用 v-html 来复合局部模板,因为 Vue 不是基于字符串的模板引擎。反之,对于用户界面 (UI),组件更适合作为可重用和可组合的基本单位。

Attribute

Mustache 语法不能作用在 HTML attribute 上,遇到这种情况应该使用 v-bind指令:

<div v-bind:id="dynamicId"></div>

对于布尔 attribute (它们只要存在就意味着值为 true),v-bind 工作起来略有不同,在这个例子中:

<buttonv-bind:disabled="isButtonDisabled">Button</button>

如果 isButtonDisabled 的值是 null、undefined 或 false,则 disabled attribute 甚至不会被包含在渲染出来的