Fork me on GitHub

Vue.js的安装及简单使用

一.Vue简介

 

二.Vue.js的安装
2.1.npm安装
2.1.1.node.js介绍及安装

简介

简单的说 Node.js 就是运行在服务端的 JavaScript。

Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。

Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

 

安装

Node.js 安装包及源码下载地址为:https://nodejs.org/en/download/

 

验证是否安装成功

2.1.2.NPM 使用介绍

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:

 

允许用户从NPM服务器下载别人编写的第三方包到本地使用。

允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。

允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。

 

 

2.1.3.使用淘宝 NPM 镜像

大家都知道国内直接使用 npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

淘宝 NPM 镜像是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

你可以使用淘宝定制的 cnpm (gzip 压缩支持) 命令行工具代替默认的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

这样就可以使用 cnpm 命令来安装模块了:

$ cnpm install [name]

三.使用npm构建vue项目

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

# 最新稳定版

$ cnpm install vue

2.1.5.命令行工具

Vue.js 提供一个官方命令行工具,可用于快速搭建大型单页应用。

# 全局安装 vue-cli

$ cnpm install --global vue-cli

# 创建一个基于 webpack 模板的新项目

$ vue init webpack my-project

# 这里需要进行一些配置,默认回车即可

This will install Vue 2.x version of the template.

 

Project name(工程名):回车

Project description(工程介绍):回车

Author:作者名

Vue build(是否安装编译器):回车

Install vue-router(是否安装Vue路由):回车

Use ESLint to lint your code(是否使用ESLint检查代码):y

Set up unit tests(安装测试工具):y

Setup e2e tests with Nightwatch(也是测试相关):y

Should we run `npm install` for you after the project has been created? (recommended):回车

 

 

进入项目,安装并运行:

$ cd my-project

$ cnpm install

$ cnpm run dev

DONE Compiled successfully in 4388ms

 

> Listening at http://localhost:8080

 

 

 

 

将生成好的项目使用IDE(idea,eclipse)的工作目录中

这里使用的idea,安装vue.js的插件。

在Terminnal中启动项目

修改HelloWorld.vue中的代码,刷新浏览器

 

 

 

2.1.6.vue项目目录结构

 

四.Vue初探
4.1MVVM模式

MVVM是Model-View-ViewModel的简写。即模型-视图-视图模型。【模型】指的是后端传递的数据。【视图】指的是所看到的页面。【视图模型】mvvm模式的核心,它是连接view和model的桥梁。它有两个方向:一是将【模型】转化成【视图】,即将后端传递的数据转化成所看到的页面。实现的方式是:数据绑定。二是将【视图】转化成【模型】,即将所看到的页面转化成后端的数据。实现的方式是:DOM 事件监听。这两个方向都实现的,我们称之为数据的双向绑定。总结:在MVVM的框架下视图和模型是不能直接通信的。它们通过ViewModel来通信,ViewModel通常要实现一个observer观察者,当数据发生变化,ViewModel能够监听到数据的这种变化,然后通知到对应的视图做自动更新,而当用户操作视图,ViewModel也能监听到视图的变化,然后通知数据做改动,这实际上就实现了数据的双向绑定。并且MVVM中的View 和 ViewModel可以互相通信。MVVM流程图如下:

 

4.2案例
4.2.1.HelloWorld

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>初探vue</title>

</head>

<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>

<body>

<div id="vue_det">

<h3>username : {{username}}</h3>

<h3>address : {{address}}</h3>

<h3>{{userinfo()}}</h3>

</div>

 

<!--这是我们的View-->

<div id="app">

{{ message }}

</div>

 

<script type="text/javascript">

var vm = new Vue({

el: '#vue_det',

data: {

username: "happy",

address: "北京市海淀区"

},

methods: {

userinfo: function() {

return "用户名:"+this.username + "-----地址:"+this.address;

}

}

});

// 这是我们的Model

var exampleData = {

message: 'Hello World!'

}

 

// 创建一个 Vue 实例或 "ViewModel"

// 它连接 View 与 Model

var test2= new Vue({

el: '#app',

data: exampleData

})

</script>

</body>

</html>

 

 

data:定义所需的属性

methods:定义的函数,可以通过 return 来返回函数值。

{{ }} 用于输出对象属性和函数返回值。

 

4.2.2双向绑定的案例

 

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>Title</title>

</head>

<script src="https://cdn.staticfile.org/vue/2.4.2/vue.min.js"></script>

<body>

 

<!--这是我们的View-->

<div id="app">

<p>{{ message }}</p>

<input type="text" v-model="message"/>

</div>

 

<script>

// 这是我们的Model

var exampleData = {

message: 'Hello World!'

}

 

// 创建一个 Vue 实例或 "ViewModel"

// 它连接 View 与 Model

new Vue({

el: '#app',

data: exampleData

})

</script>

</body>

</html>

将message绑定到文本框,当更改文本框的值时,<p>{{ message }}</p> 中的内容也会被更新。

反过来,如果改变message的值,文本框的值也会被更新,我们可以在Chrome控制台进行尝试。

posted @ 2019-04-17 18:00  L波涛  阅读(405)  评论(0编辑  收藏  举报