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