vue.js介绍,常用指令,事件,以及制作简易留言版
一、vue是什么?
一个mvvm框架(库)、和angular类似,比较容易上手、小巧,让我们的代码更加专注于业务逻辑,而不是去关注DOM操作
二、vue和angular之间的区别
vue——简单易学
指令以v-xx
一片html代码配合上json,再new出来vue实例
个人维护项目
适合:移动端项目,小巧
angular——上手难
指令以ng-xxx
所有属性和方法都挂在$scope身上
angular由google维护
适合:pc端项目
共同点:不兼容低版本的IE
三、vue的基本使用
1、基本雏形
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>vue雏形1</title>
<script src="vue.js"></script>
<script>
window.onload=function () {
var c=new Vue({ //可以不定义这个对象直接new,或者也可以把变量名变为其他的都行:如abc
el:'#box', //选择器:可以是id,class,tagName
data:{ //数据
msg:'welcome vue'
}
}); };
</script>
</head>
<body>
<di id="box">
{{msg}}
</di>
</body>
</html>
运行结果:
2、常用指令
2.1v-model 一般表单元素(input) 双向数据绑定
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>常用指令</title>
<script src="vue.js"></script>
<script>
window.onload=function () {
var abc=new Vue({
el:'#box',
data:{
msg:'welcome vue',
msg2:,
msg3:true,
arr:['apple','pear','banana','orange'],
json:{a:'apple',b:'pear',c:'banana',d:'orange'}
}
}); };
</script>
</head>
<body>
<di id="box">
<input type="text" v-model="msg"> //当改变input的值时,下面{{msg}}的值也会改变同时下面的input也会同时改变
<!--一个input也行-->
<input type="text" v-model="msg">
<br>
{{msg}}
<br>
{{msg2}}
<br>
{{msg3}}
<br>
{{arr}}
<br>
{{json}}
</di>
</body>
</html>
运行结果:
2.2、循环:v-for="变量名 in 对象"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<title>循环</title>
<script src="vue.js"></script>
<script>
window.onload=function () {
var abc=new Vue({
el:'#box',
data:{
msg:'welcome vue',
msg2:,
msg:true,
arr:['apple','pear','banana','orange'],
json:{a:'apple',b:'pear',c:'banana',d:'orange'}
}
}); };
</script>
</head>
<body> <div id="box">
<ul>
<li v-for="value in arr">
{{value}} {{$index}} //循环遍历出arr数组的值和当前值的索引
</li>
</ul>
<hr>
<ul>
<li v-for="value in json">
{{value}} {{$index}} {{$key}} //循环遍历出json文件的值,索引以及当前值的键名
</li>
</ul> <hr>
<ul>
<li v-for="(k,v) in json">
{{k}} {{v}} {{$index}} {{$key}} //一件键值对的形式进行便利
</li>
</ul>
</div> </body>
</html>
运行结果:
2.3、事件
2.3.1:v-on:click="函数"
v-on:click/mouseout/mouseover/dblclick/mousedown.....
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="vue.js"></script>
<script>
window.onload=function () {
var c=new Vue({
el:'#box',
data:{//数据
msg:'welcome vue',
msg2:,
msg:true,
arr:['apple','pear','banana','orange'],
json:{a:'apple',b:'pear',c:'banana',d:'orange'}
},
methods:{//方法
add:function () {
this.arr.push('tomato'); //this指的是当前的对象c }
}
}); };
</script>
</head>
<body>
<div id="box">
<input type="button" value="按钮" v-on:click="add()" > //事件
<ul>
<li v-for="vaule in arr">
{{vaule}}
</li>
</ul>
</div>
</body>
</html>
运行结果:当点击按钮会添加一个tomato在数组里
2.3.2:显示与隐藏:v-show="true/false"
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>点击按钮div消失</title>
<script src="vue.js"></script>
<script>
window.onload=function () {
var c=new Vue({
el:'#box',
data:{//数据
a:true, //将a的值初始化为true,设置为显示
msg:'welcome vue',
msg2:,
msg:true,
arr:['apple','pear','banana','orange'],
json:{a:'apple',b:'pear',c:'banana',d:'orange'}
} }); };
</script>
</head>
<body>
<div id="box">
<input type="button" value="按钮" v-on:click="a=false"> //点击之后将a的值变为false,设置为隐藏
<div style="width: 100px;height: 100px;background-color: red" v-show='a' > //设置为显示 </div>
</div>
</body>
</html>
运行结果:点击按钮div消失
3、简易留言版:实现添加数据删除数据
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>简易留言板</title>
<link rel="stylesheet" href="lib/bootstrap.min.css"> <script src="lib/jquery-1.7.2.js"></script>
<script src="lib/bootstrap.js"></script>
<script src="vue.js"></script>
<script>
window.onload=function () {
new Vue({
el:'#box', //选择器
data: { //数据
myData: [],
username: '',
age:'',
nowIndex:-100 //一定要将nowIndex设置为不可能的数
},
methods:{
add:function () { //向数组添加对象,属性为name和age,值分别是username和age
this.myData.push({ //this指向的是当前的new出来的vue对象
name:this.username, //将第一个input框的值赋给name
age:this.age //将第二个input框的值赋给age
});
this.username=''; //将当前对象的username的值置为空
this.age=''; //当前对象的age的值置为空 },
deleteMsg:function (n) {
if(n==-){
this.myData=[]; //将数组置为空
}else{
this.myData.splice(n,); //删除当前项
}
}
}
});
};
</script>
</head>
<body>
<div class="container" id="box">
<form role="form">
<div class="form-group">
<label for="username">用户名:</label>
<input type="text" id="username" v-model="username" class="form-control" placeholder="输入姓名">
</div>
<div class="form-group">
<label for="age">年 龄:</label>
<input type="text" id="age" v-model="age" class="form-control" placeholder="输入年龄">
</div>
<div class="form-group">
<input type="button" value="添加" class="btn btn-primary" v-on:click="add()"> //点击添加,触发add()函数,向数组添加数据
<input type="reset" value="重置" class="btn btn-danger"> //将input框置为空
</div>
</form>
<hr>
<table class="table table-bordered table-hover">
<caption class="h2 text-info">
用户信息表
</caption>
<tr>
<th class="text-center">序号</th>
<th class="text-center">名字</th>
<th class="text-center">年龄</th>
<th class="text-center">操作</th>
</tr>
<tr class="text-center" v-for="item in myData">
<td>{{$index+}}</td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>
<button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#layer" v-on:click="nowIndex={{$index}}">删除</button>//点击按钮触发模态框,将当前数组值的索引赋给nowIndex
</td>
</tr> <tr v-show="myData.length!=0"> //如果数组的长度不等于零,”删除全部“显示出来
<td colspan="" class="text-right">
<button class="btn btn-danger btn-sm"data-toggle="modal" data-target="#layer" v-on:click="nowIndex=-2">
删除全部
</button>
</td>
</tr>
<tr v-show="myData.length==0"> //如果数组长度等于零,”暂无数据“显示出来
<td colspan="" class="text-center text-muted" >
<p>暂无数据....</p>
</td>
</tr>
</table>
<!--模态框 弹出框-->
<div role="dialog" class="modal" id="layer"> //模态声明 <div class="modal-dialog"> //窗口声明
<div class="modal-content"> //内容声明
<div class="modal-header"> //声明标题
<button type="button" class="close" data-dismiss="modal"> //data-dismiss表示点击X这个模态框消失
<span>×</span>
</button>
<h4 class="modal-title">
确认删除吗?
</h4>
</div>
<div class="modal-body text-right">
<button class="btn btn-primary btn-sm" data-dismiss="modal">取消</button> //点击取消,模态框消失
<button class="btn btn-danger btn-sm" data-dismiss="modal" v-on:click="deleteMsg(nowIndex)">确认</button> //点击确定删除当前数据,并且模态框消失
</div>
</div>
</div>
</div>
</div> </body>
</html>
运行结果:
vue.js介绍,常用指令,事件,以及制作简易留言版的更多相关文章
- Vue.js之常用指令
vue常用指令 vue.js官方给自己的定义是数据模板引擎,并给出了一套渲染数据的指令.本文详细介绍vue.js的常用指令. 官网:点我 一.v-text.v-html v-text:用于绑定文本 v ...
- 1.Vue.js的常用指令
Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得 ...
- Vue.js介绍
http://www.cnblogs.com/keepfool/p/5619070.html Vue.js介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思 ...
- 1. vue.js介绍
1. 什么是vue.js Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助 ...
- Vue.js简介及指令
1.Vue.js的特点 Vue.js是一个Javascript MVVM(Model-View-ViewModel)库,与传统Jquery的区别在于,Vue.js舍弃了繁杂的DOM操作, 如取DOM值 ...
- vue.js click点击事件获取当前元素对象
Vue.js可以传递$event对象 <body id="app"> <ul> <li v-on:click="say('hello!', ...
- onscroll事件没有响应的原因以及vue.js中添加onscroll事件监听的方法
1 onscroll事件失效 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...
- Vue.js:自定义指令
ylbtech-Vue.js:自定义指令 1.返回顶部 1. Vue.js 自定义指令 除了默认设置的核心指令( v-model 和 v-show ), Vue 也允许注册自定义指令. 下面我们注册一 ...
- vue.js(5)--事件修饰符
vue中的事件修饰符(.stop..prevent..self..capture..once) (1)实例代码 <!DOCTYPE html> <html lang="en ...
随机推荐
- input框内的单引号,双引号转译
主要是在后台传前端之前先把变量值替换单引号双引号成转译付. $bianlian是要替换的变量 两种方法 1.php后台输出值先转译 //双引号替换成转译符 $bianlian=preg_replace ...
- I - Intersection HDU - 5120(圆环相交面积)
Matt is a big fan of logo design. Recently he falls in love with logo made up by rings. The followin ...
- C++图形编程之graphics.h头文件
graphics.h是Turbo C的针对DOS下的一个C语言图形库,如果要用的话应该用TC的编译器来编译,但是如果需要在vc及vs环境中使用graphics.h的功能,则可以选择下载EasyX图形库 ...
- (11.06)Java小知识
最近由于课程变化,学习计划也跟着改动,留给我写博客的时间也越来越少.今天晚上没有课,抽空过来图书馆写一写,许久不写感觉都有点陌生了! 今天要和大季家分享的衔接了上一篇博客,是关于方法的嵌套调用与递归调 ...
- CI脚本异常退出问题定位
背景 在CI脚本中,使用类似如下脚本进行项目编译的计时,但在执行过程中,有时会出现CI脚本(命名为ci.sh)未完全执行的情况: #!/bin/bash -e sleep_time=$1 start_ ...
- Android 开发笔记___SD卡文件操作
package com.example.alimjan.hello_world.Utils; import android.graphics.Bitmap; import android.graphi ...
- Oracle - java创建Oracle 的触发器
Oracle - java创建Oracle 的触发器 今天碰到这个问题,遇到点问题,到这来 总结一下解决的办法, 需求,为一个用户当中的表增加一个自动增长列,我还没有学Oracle 的这部分,只是简单 ...
- Sqlserver将数据从一个表插入到另一个表
.如果是整个表复制表达如下: insert into table1 select * from table2 .如果是有选择性的复制数据表达如下: insert into table1(column1 ...
- 运放的PID电路
PID就是(比例(proportion).积分(integral).导数(derivative)),在工程实际中,应用最为广泛的调节器控制规律为比例.积分.微分控制,简称PID控制,又称PID调节. ...
- HTTP请求过程(http是一种无状态协议,即不建立持久的连接)
一.一个完整的HTTP请求,通常有7个步骤: 1.建立TCP连接: 2.web浏览器向web服务器发送请求命令: 3.浏览器发送请求头信息: 4.服务器应答: 5.服务器发送应答头信息: 6.服务器向 ...