Vue简介

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

官网:http://cn.vuejs.org/

参考:https://cn.vuejs.org/v2/guide/

Git地址:https://github.com/vuejs

Vue环境配置

Node和NPM

NPM是Node提供的模块管理工具,可以非常方便的下载安装很多前端框架,包括Jquery、AngularJS、VueJs都有。为了学习使用方便,我们先安装node及NPM工具。

下载Node和NPM

下载地址:https://nodejs.org/en/download/

安装之后控制台输入

node -v

查看版本信息 请输入图片描述

安装node成功后自带 npm,可以 'npm -v' 输入 查看 请输入图片描述

npm默认的仓库地址是在国外网站,速度较慢,建议设置到淘宝镜像。

我们首先安装nrm,这里-g代表全局安装

npm install nrm -g

然后通过nrm ls命令查看npm的仓库列表,带*的就是当前选中的镜像仓库: 请输入图片描述

通过nrm use taobao来指定要使用的镜像源,最后安装完成之后需要重启电脑

Vue安装

创建一个静态web工程

请输入图片描述

下载安装Vue

可以直接从官网下载 下载地址:https://github.com/vuejs/vue

也可以使用公共的CDN

<!-- 开发环境版本,包含了用帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

或者:

<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

但是推荐使用NPM安装

NPM安装

点击Terminal打开idea的控制台,输入npm init -y 进行初始化,然后 安装Vue,输入命令:npm install vue --save ,--save 代表局部安装 只安装在当前项目 然后就会在hello-vue目录发现一个node_modules目录,并且在下面有一个vue目录。 请输入图片描述

node_modules是通过npm安装的所有模块的默认位置。

Vue入门案例

Hello World

新建一个HTML页面

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div id="app">
        <!-- 使用{{}}取出vue实例data里写好的数据 -->
        <h1>你好,{{name}}</h1>
    </div>
<script src="node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
    <!--首先创建一个vue实例-->
    var vm = new Vue({
        el:"#app", // element  指定需要操作的dom对象
        data:{  //数据  键值对的方法储存
            name:"萧一旬"
        }
    })
</script>
</body>
</html>

页面效果: 请输入图片描述

  • 首先通过 new Vue()来创建Vue实例
  • 然后构造函数接收一个对象,对象中有一些属性:
    • el:是element的缩写,通过id选中要渲染的页面元素,本例中是一个div
    • data:数据,数据是一个对象,里面有很多属性,都可以渲染到视图中
      • name:这里我们指定了一个name属性
  • 页面中的h1元素中,我们通过{{name}}的方式,来渲染刚刚定义的name属性。

当你修改name属性时,页面会跟着变化: 请输入图片描述

Vue的双向绑定

页面的变化会引起数据的变化,数据的变化会引起页面的变化 对刚才的代码稍加改造

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<div id="app">
 <!-- v-model 指定需要关联的属性 -->
    <input v-model="name">
 <!-- 使用{{}}取出vue实例data里写好的数据 -->
    <h1>你好,{{name}}</h1>
</div>
<script src="node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
    <!--首先创建一个vue实例-->
    var vm = new Vue({
        el: "#app", // element  指定需要操作的dom对象
        data: {  //数据  键值对的方法储存
            name: "萧一旬"
        }
    })
</script>
</body>
</html>

效果展示 请输入图片描述

Vue的事件处理

对刚才的代码再次进行处理

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4"
      xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<div id="app">
    <!-- v-model 指定需要关联的属性 -->
    <input v-model="name">
    <!-- 使用{{}}取出vue实例data里写好的数据 -->
    <h1>你好,{{name}}</h1>
    <h1>这是你点我的第{{num}}次</h1>
    <button v-on:click="add">+</button>
    <button @click="num--">-</button> //num--
</div>

<script src="node_modules/vue/dist/vue.js"></script>
<script type="text/javascript">
    <!--首先创建一个vue实例-->
    var vm = new Vue({
        el: "#app", // element  指定需要操作的dom对象
        data: {  //数据  键值对的方法储存
            name: "萧一旬",
            num:0
        },
        methods:{
            add(){
                this.num++;
            }
        }
    })
</script>
</body>
</html>

效果静态图(当点击按钮就会实现 num 属性的加减) 请输入图片描述

  • 这里用v-on指令绑定点击事件,而不是普通的onclick,然后直接操作num
  • 普通click是无法直接操作num的。
  • v-on可以使用@代替

总结

此文章也算是个人的学习笔记及总结,实现了vue的HelloWorld,了解了vue最基本的使用