本文转自:http://www.runoob.com/w3cnote/vue-js-quickstart.html

什么是 Vue.js?

Vue.js 是用于构建交互式的 Web  界面的库。

Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单、灵活的 API。

本章节是关于 Vue1.x 版本的内容,如需查看 Vue2.x,可点以下链接。

Vue.js2.0 教程:http://www.runoob.com/vue2/vue-tutorial.html

Vue2.0 新手入门:http://www.runoob.com/w3cnote/vue2-start-coding.html

Vue.js 特点

  • 简洁: HTML 模板 + JSON 数据,再创建一个 Vue 实例,就这么简单。
  • 数据驱动: 自动追踪依赖的模板表达式和计算属性。
  • 组件化: 用解耦、可复用的组件来构造界面。
  • 轻量: ~24kb min+gzip,无依赖。
  • 快速: 精确有效的异步批量 DOM 更新。
  • 模块友好: 通过 NPM 或 Bower 安装,无缝融入你的工作流。

如果你喜欢下面这些,那你一定会喜欢 Vue.js:

  • 可扩展的数据绑定机制
  • 原生对象即模型
  • 简洁明了的 API
  • 组件化 UI 构建
  • 多个轻量库搭配使用

Vue.js 安装

独立版本

直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。

Vue.js 官网下载地址:http://vuejs.org/guide/installation.html

我们可以在官网上直接下载生产版本应用在我们项目中。

或者可以使用本站的静态资源 CDN 库(1.0.11版本):

http://static.runoob.com/assets/vue/1.0.11/vue.min.js

NPM 安装

在用 Vue.js 构建大型应用时推荐使用 NPM 安装:

# 最新稳定版本
$ npm install vue
# 最新稳定 CSP 兼容版本
$ npm install vue@csp
# 开发版本(直接从 GitHub 安装)
$ npm install vuejs/vue#dev

Bower 安装

# 最新稳定版本
$ bower install vue

创建第一个 Vue 应用

接下来我们创建第一个 Vue 应用。

View 层 - HTML 代码如下:

<div id="app">
{{ message }}
</div>

Model 层 - JavaScript 代码如下(需放在指定的HTML元素之后):

new Vue({
el:'#app',
data: {
message:'Hello World!'
}
});

尝试一下 »


双向数据绑定

接下来我们创建一个 view 层 HTML 文件:vueapp.htm,以及 model 层文件:vueapp.js,然后通过 vue.js(使用v-model这个指令)完成中间的底层逻辑,实现绑定的效果。改变其中的任何一层,另外一层都会改变。

vueapp.htm 文件代码:

<div id="app">
<p>{{ message }}</p>
<input v-model="message">
</div>

vueapp.js 文件代码:

new Vue({
el: '#app',
data: {
message: '菜鸟教程!'
}
})

尝试一下 »

以上实例中 {{message}} 会根据输入框 input 的改变而改变,如果你不想让其变化可以修改为:

{{* message }}

同时还支持一些简单的表达式:

<!-- 字符串连接 -->
{{ message + '官网地址:www.runoob.com' }}
<!-- 字符串反转 -->
{{ message.split('').reverse().join('') }}

尝试一下 »

列表输出

列表输出使用 v-for(v-for取代了1.0以前版本中的v-repeat) 这个指令就能完成:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
<script src="http://static.runoob.com/assets/vue/1.0.11/vue.min.js"></script>
</head>
<body>
<div id="app">
<ul>
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ul>
</div>
<script>
    new Vue({
el: '#app',
data: {
todos: [
{ text: 'Learn JavaScript' },
{ text: 'Learn Vue.js' },
{ text: 'Build Something Awesome' }
]
}
})
</script>
</body>
</html>

尝试一下 »

多维数组实例

<div id="app">
<ul id="example-2">
<li v-for="item in items">
{{ parentMessage }} - {{ $index }} - {{ item.message }}
</li>
</ul>
</div>
<script>
var example2 = new Vue({
el: '#example-2',
data: {
parentMessage: '菜鸟教程官网',
items: [
{ message: 'www.runoob.com' },
{ message: 'www.runoob.com' }
]
}
})
</script>

尝试一下 »


条件判断

在字符串模板中,如 Handlebars,我们得像这样写一个条件块:

<!-- Handlebars 模板 -->
{{#if ok}}
<h1>Yes</h1>
{{/if}}

在 Vue.js,我们使用 v-if 指令实现同样的功能:

<h1 v-if="ok">Yes</h1>

也可以用 v-else 添加一个 "else" 块:

<h1 v-if="ok">Yes</h1>
<h1 v-else>No</h1>

尝试一下 »

因为 v-if 是一个指令,需要将它添加到一个元素上。但是如果我们想切换多个元素呢?此时我们可以把一个 <template> 元素当做包装元素,并在上面使用 v-if,最终的渲染结果不会包含它。

<template v-if="ok">
<h1>Title</h1>
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</template>

v-show

v-show作用与v-if类似,不同的是v-show的元素会始终渲染并保持在 DOM 中,且v-show不支持<template>标签。

<h1 v-show="ok">Hello!</h1>

过滤器

与Linux中的管道类似,vue.js也使用的是|:

{{message | uppercase}}

这样就能输出message的大写了,过滤器也能串联在一起使用:

{{message | reverse | uppercase}}

这里reverse并不是内建的过滤器,我们可以用Vue.filter自定义:

Vue.filter('reverse', function (value) {
return value.split('').reverse().join('')
})

尝试一下 »


参考文档

官网:http://vuejs.org/

官方文档:http://cn.vuejs.org/examples/

[转]Vue.js 入门教程的更多相关文章

  1. Vue.js 入门教程

    Vue.js 入门教程:https://cn.vuejs.org/v2/guide/index.html

  2. Vue.js入学教程

    Vue.js是什么Vue.js 是用于构建交互式的 Web 界面的库.Vue.js 提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单.灵活的 API.Vue.js(类似于view)是一套构建 ...

  3. Vue.js 入门:从零开始做一个极简 To-Do 应用

    Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言  学习 Vue ...

  4. 【特别推荐】Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  5. Node.js 入门教程和学习资源汇总

    这篇文章与大家分享一批很有用的 Node.js 入门教程和学习资源.Node 是一个服务器端的 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用 ...

  6. 免费的 Vue.js 入门与进阶视频教程

    这是我免费发布的高质量超清「Vue.js 入门与进阶视频教程」. 全网最好的.免费的 Vue.js 视频教程,课程基于 Vue.js 2.0,由浅入深,最后结合实际的项目进行了最棒的技术点讲解,此课程 ...

  7. D3.js 入门教程

    最近需要用到d3, 记录下d3的教程 网上搜了几个关于d3的教程 D3.js 入门教程      http://wiki.jikexueyuan.com/project/d3wiki/author.h ...

  8. Vue.js入门(一)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta htt ...

  9. Vue.js入门系列教程(二)

    过滤器:filter 全局过滤器 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...

随机推荐

  1. FastReport套打 和连续打印

    FastReport套打,纸张是连续的带锯齿的已经印刷好的,类似于通信公司发票这里设计的是客户销售记录.客户有两个要求:1.因为打印纸张是印刷的,明细记录只有8行,所以,如果明细记录如果不到8行,就将 ...

  2. Android-Java-Lock

    此篇博客已售票例子为例,所以首先看一个synchronized(同步锁机制)的案例 synchronized(同步锁机制)的案例 package android.java.thread19; /** ...

  3. StringBuilder 详解 (String系列之2)

    本章介绍StringBuilder以及它的API的详细使用方法. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/string02.html StringB ...

  4. WPF学习笔记(2):准确定位弹出窗

    效果图:使弹出的列表框紧随在单元格的下边缘. 第一次,尝试在XAML中设置Popup的定位方式:Placement="Mouse".基本能够定位,但当在输入前移动鼠标,列表框就会随 ...

  5. appium精简教程

    环境配置 package appium; import io.appium.java_client.android.*; import java.io.File; import java.io.IOE ...

  6. Flask系列04--Flask的蓝图

    flask蓝图 一.蓝图 蓝图(Blueprint),类似于实现django中路由分发那种感觉, 可以把Blueprint理解为不能被run的Flask对象 Blueprint实例化时需要的参数 基本 ...

  7. linux的RPM软件包管理工具

    RPM(Redhat Package Manage)原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采 ...

  8. maven搭建ssm初级框架

    喜欢的朋友可以关注下,粉丝也缺. 前言: 想必大家对smm框架已经熟悉的不能再熟悉了,它是由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. ...

  9. mvc大对象json传输报错

    public ActionResult GetLargeJsonResult() { return new ContentResult { Content = new JavaScriptSerial ...

  10. 剑指offer十三之调整数组顺序使奇数位于偶数前面

    一.题目 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变. 二.思路 此题可 ...