目录
一、后端程序员,我们有必要学习vue吗?
作为一个后端程序员,我们有必要学习vue吗?这个问题曾经困扰我很久。
如果你仅限于满足做公司的一个螺丝钉,那没问题,确实不需要学。如果你想做一些自己的东西,不会vue,难道你要用html+css去做?而且你的html+css真的有那么好吗?
所以,思考过后,博主觉得还是有必要系统性的学习一下vue。
二、vue的安装
进入vue官网:https://cn.vuejs.org/v2/guide/installation.html
不要直接左击,右击,选择链接另存为。放到本地,vue就下载下来了。
我的开发工具选择的是HBuildX。这个自行下载。很简单。
HBuildx新建一个项目,然后新建一个文件夹js,把之前下载的vue.js放进去:
三、vue的hello world
1.案例
首先我们新建一个文件夹,下面新建一个html。写好html,我们点击预览。
html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
<h2>{
{message}}</h2>
<h3>{
{name}}</h3>
</div>
<script src="../js/vue.js"></script>
<script>
//let(修饰变量),const(修饰常量)
//编程范式:声明式编程
const app = new Vue({
el:'#app',//用于挂载要管理的元素
data:{//定义数据
message:'你好,徐鹏',
name:"打工人"
}
})
</script>
</body>
</html>
结果:有人好奇,为啥是显示haha。我在预览的浏览器里点击F12,在第4步把原本的message手动修改了,所以页面也自动做了改变
2.解析案例
(1)我们先引入vue.js。
(2)新建一个vue对象,因为里面的数据不变,所以对象类型用const。如果变就用let
(3)el表示管理<body>里面id为app的对象。至于这个id为app的对象的数据管理,则在data里。也就是说,{ {message}}这个数据到底是什么,我们在app对象里的data里找到message的值,把他赋值给页面。
这个案例还是很简单的
四、列表的显示(for循环展示列表数据)
<ul>
<li v-for="item in identitys">{
{item}}</li>
</ul>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div id="app">
{
{message}}
<ul>
<li v-for="item in identitys">{
{item}}</li>
</ul>
</div>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
message:'徐鹏',
identitys:['程序员','打工人','CSDN博主']
}
})
</script>
</body>
</html>
F12,打开,我们可以动态添加内容:
五、计数器案例(点击事件响应)
<button v-on:click="add">+</button>
methods:{
add:function(){
this.counter++;
console.log('add被执行')
},
}
如果点击事件很复杂,可以用如下写法:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>计数器</title>
</head>
<div id="app">
<h2>当前计数:{
{counter}}</h2>
<!-- <button v-on:click="counter++">+</button>
<button v-on:click="counter--">-</button> -->
<button v-on:click="add">+</button>
<button v-on:click="sub">-</button>
</div>
<body>
<script src="../js/vue.js"></script>
<script>
const app = new Vue({
el:'#app',
data:{
counter:0
},
methods:{
add:function(){
this.counter++;
console.log('add被执行')
},
sub:function(){
this.counter--;
console.log('sub被执行')
}
}
})
</script>
</body>
</html>
注:函数的方法的区别:
这里add,sub都是方法,函数是直接卸载script标签里的function。而写在内部的都是方法
六、MVVM
MVVM = Model + View + ViewModel
简单理解一下:view就是指的html里的内容。Model就是new Vue里面的内容。ViewModel就是指的new Vue这个对象。