分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

vue.js介绍,常用指令,事件,以及制作简易留言版

发布时间:2023-09-06 01:30责任编辑:熊小新关键词:js指令

一、vue是什么?

  一个mvvm框架(库)、和angular类似,比较容易上手、小巧,让我们的代码更加专注于业务逻辑,而不是去关注DOM操作

二、vue和angular之间的区别

  vue——简单易学

      指令以v-xx

      一片html代码配合上json,再new出来vue实例

      个人维护项目

      适合:移动端项目,小巧

  angular——上手难

      指令以ng-xxx

      所有属性和方法都挂在$scope身上

      angular由google维护

      适合:pc端项目

  共同点:不兼容低版本的IE

三、vue的基本使用

1、基本雏形

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>vue雏形1</title> 6 ????<script src="vue.js"></script> 7 ????<script> 8 ????????window.onload=function () { 9 ????????????var c=new Vue({                //可以不定义这个对象直接new,或者也可以把变量名变为其他的都行:如abc10 ????????????????el:‘#box‘,                //选择器:可以是id,class,tagName11 ????????????????data:{                  //数据12 ????????????????????msg:‘welcome vue‘13 ????????????????}14 ????????????});15 16 ????????};17 ????</script>18 </head>19 <body>20 ????<di id="box">21 ????????{{msg}}22 ????</di>23 </body>24 </html>

 运行结果:

2、常用指令

  2.1v-model 一般表单元素(input) 双向数据绑定

  

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>常用指令</title> 6 ????<script src="vue.js"></script> 7 ????<script> 8 ????????window.onload=function () { 9 ????????????var abc=new Vue({10 ????????????????el:‘#box‘,11 ????????????????data:{12 ????????????????????msg:‘welcome vue‘,13 ????????????????????msg2:12,14 ????????????????????msg3:true,15 ????????????????????arr:[‘apple‘,‘pear‘,‘banana‘,‘orange‘],16 ????????????????????json:{a:‘apple‘,b:‘pear‘,c:‘banana‘,d:‘orange‘}17 ????????????????}18 ????????????});19 20 ????????};21 ????</script>22 </head>23 <body>24 <di id="box">25 ????<input type="text" v-model="msg">            //当改变input的值时,下面{{msg}}的值也会改变同时下面的input也会同时改变26 ????<!--一个input也行-->27 ????<input type="text" v-model="msg">          28 ????<br>29 ????{{msg}}30 ????<br>31 ????{{msg2}}32 ????<br>33 ????{{msg3}}34 ????<br>35 ????{{arr}}36 ????<br>37 ????{{json}}38 </di>39 </body>40 </html>

运行结果: 

2.2、循环:v-for="变量名 in 对象"

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0"> 6 ????<meta name="apple-mobile-web-app-capable" content="yes"> 7 ????<meta name="apple-mobile-web-app-status-bar-style" content="black"> 8 ????<title>循环</title> 9 ????<script src="vue.js"></script>10 ????<script>11 ????????window.onload=function () {12 ????????????var abc=new Vue({13 ????????????????el:‘#box‘,14 ????????????????data:{15 ????????????????????msg:‘welcome vue‘,16 ????????????????????msg2:12,17 ????????????????????msg:true,18 ????????????????????arr:[‘apple‘,‘pear‘,‘banana‘,‘orange‘],19 ????????????????????json:{a:‘apple‘,b:‘pear‘,c:‘banana‘,d:‘orange‘}20 ????????????????}21 ????????????});22 23 ????????};24 ????</script>25 </head>26 <body>27 28 <div id="box">29 ????<ul>30 ????????<li v-for="value in arr">31 ????????????{{value}} ??{{$index}}            //循环遍历出arr数组的值和当前值的索引32 ????????</li>33 ????</ul>34 ????<hr>35 ????<ul>36 ????????<li v-for="value in json">37 ????????????{{value}} ??{{$index}} ?{{$key}}      //循环遍历出json文件的值,索引以及当前值的键名38 ????????</li>39 ????</ul>40 41 ????<hr>42 ????<ul>43 ????????<li v-for="(k,v) in json">44 ????????????{{k}} ??{{v}} ??{{$index}} ?{{$key}}      //一件键值对的形式进行便利45 ????????</li>46 ????</ul>47 </div>48 49 </body>50 </html>

  运行结果:

2.3、事件

  2.3.1:v-on:click="函数"

  v-on:click/mouseout/mouseover/dblclick/mousedown.....

  

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>Title</title> 6 ????<script src="vue.js"></script> 7 ????<script> 8 ????????window.onload=function () { 9 ????????????var c=new Vue({10 ????????????????el:‘#box‘,11 ????????????????data:{//数据12 ????????????????????msg:‘welcome vue‘,13 ????????????????????msg2:12,14 ????????????????????msg:true,15 ????????????????????arr:[‘apple‘,‘pear‘,‘banana‘,‘orange‘],16 ????????????????????json:{a:‘apple‘,b:‘pear‘,c:‘banana‘,d:‘orange‘}17 ????????????????},18 ????????????????methods:{//方法19 ????????????????????add:function () {20 ????????????????????????this.arr.push(‘tomato‘);    //this指的是当前的对象c21 ????????????????????????22 ????????????????????}23 ????????????????}24 ????????????});25 26 ????????};27 ????</script>28 </head>29 <body>30 <div id="box">31 ????<input type="button" value="按钮" v-on:click="add()" >      //事件32 ????<ul>33 ????????<li v-for="vaule in arr">34 ????????????{{vaule}}35 ????????</li>36 ????</ul>37 </div>38 </body>39 </html>

运行结果:当点击按钮会添加一个tomato在数组里

 2.3.2:显示与隐藏:v-show="true/false"

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 ????<meta charset="UTF-8"> 5 ????<title>点击按钮div消失</title> 6 ????<script src="vue.js"></script> 7 ????<script> 8 ????????window.onload=function () { 9 ????????????var c=new Vue({10 ????????????????el:‘#box‘,11 ????????????????data:{//数据12 ????????????????????a:true,                          //将a的值初始化为true,设置为显示13 ????????????????????msg:‘welcome vue‘,14 ????????????????????msg2:12,15 ????????????????????msg:true,16 ????????????????????arr:[‘apple‘,‘pear‘,‘banana‘,‘orange‘],17 ????????????????????json:{a:‘apple‘,b:‘pear‘,c:‘banana‘,d:‘orange‘}18 ????????????????}19 20 ????????????});21 22 ????????};23 ????</script>24 </head>25 <body>26 <div id="box">27 ????<input type="button" value="按钮" v-on:click="a=false">                   //点击之后将a的值变为false,设置为隐藏28 ????<div style="width: 100px;height: 100px;background-color: red" ?v-show=‘a‘ >      //设置为显示29 30 ????</div>31 </div>32 </body>33 </html>

 运行结果:点击按钮div消失

3、简易留言版:实现添加数据删除数据

 ?1 <!DOCTYPE html> ?2 <html lang="en"> ?3 <head> ?4 ????<meta charset="UTF-8"> ?5 ????<title>简易留言板</title> ?6 ????<link rel="stylesheet" href="lib/bootstrap.min.css"> ?7 ??8 ????<script src="lib/jquery-1.7.2.js"></script> ?9 ????<script src="lib/bootstrap.js"></script> 10 ????<script src="vue.js"></script> 11 ????<script> 12 ????????window.onload=function () { 13 ????????????new Vue({ 14 ????????????????el:‘#box‘,                           //选择器 15 ????????????????data: {                            //数据 16 ????????????????????myData: [], 17 ????????????????????username: ‘‘, 18 ????????????????????age:‘‘, 19 ????????????????????nowIndex:-100                     //一定要将nowIndex设置为不可能的数 20 ????????????????}, 21 ????????????????methods:{ 22 ????????????????????????add:function () {                   //向数组添加对象,属性为name和age,值分别是username和age 23 ????????????????????????????this.myData.push({                //this指向的是当前的new出来的vue对象 24 ????????????????????????????????name:this.username,              //将第一个input框的值赋给name 25 ????????????????????????????????age:this.age                  //将第二个input框的值赋给age 26 ????????????????????????????}); 27 ????????????????????????????this.username=‘‘;                //将当前对象的username的值置为空 28 ????????????????????????????this.age=‘‘;                    //当前对象的age的值置为空 29 ?30 ????????????????????????}, 31 ????????????????????????deleteMsg:function (n) { 32 ????????????????????????????if(n==-2){ 33 ????????????????????????????????this.myData=[];              //将数组置为空 34 ????????????????????????????}else{ 35 ????????????????????????????????this.myData.splice(n,1);        //删除当前项 36 ????????????????????????????} 37 ????????????????????????} 38 ????????????????} 39 ????????????}); 40 ????????}; 41 ????</script> 42 </head> 43 <body> 44 <div class="container" id="box"> 45 ????<form role="form"> 46 ????????<div class="form-group"> 47 ????????????<label for="username">用户名:</label> 48 ????????????<input type="text" id="username" v-model="username" class="form-control" ?placeholder="输入姓名"> 49 ????????</div> 50 ????????<div class="form-group"> 51 ????????????<label for="age">年 龄:</label> 52 ????????????<input type="text" id="age" v-model="age" class="form-control" placeholder="输入年龄"> 53 ????????</div> 54 ????????<div class="form-group"> 55 ????????????<input type="button" value="添加" class="btn btn-primary" v-on:click="add()">      //点击添加,触发add()函数,向数组添加数据 56 ????????????<input type="reset" value="重置" class="btn btn-danger">                  //将input框置为空 57 ????????</div> 58 ????</form> 59 ????<hr> 60 ????<table class="table table-bordered table-hover"> 61 ????????<caption class="h2 text-info"> 62 ????????????用户信息表 63 ????????</caption> 64 ????????<tr> 65 ????????????<th class="text-center">序号</th> 66 ????????????<th class="text-center">名字</th> 67 ????????????<th class="text-center">年龄</th> 68 ????????????<th class="text-center">操作</th> 69 ????????</tr> 70 ????????<tr class="text-center" v-for="item in myData"> 71 ????????????<td>{{$index+1}}</td> 72 ????????????<td>{{item.name}}</td> 73 ????????????<td>{{item.age}}</td> 74 ????????????<td> 75 ????????????????<button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#layer" v-on:click="nowIndex={{$index}}">删除</button>//点击按钮触发模态框,将当前数组值的索引赋给nowIndex 76 ????????????</td> 77 ????????</tr> 78 ?79 ????????<tr v-show="myData.length!=0">                          //如果数组的长度不等于零,”删除全部“显示出来 80 ????????????<td colspan="4" class="text-right"> 81 ????????????????<button class="btn btn-danger btn-sm"data-toggle="modal" data-target="#layer" v-on:click="nowIndex=-2"> 82 ????????????????????删除全部 83 ????????????????</button> 84 ????????????</td> 85 ????????</tr> 86 ????????<tr v-show="myData.length==0">                    //如果数组长度等于零,”暂无数据“显示出来 87 ????????????<td colspan="4" class="text-center text-muted" > 88 ????????????????<p>暂无数据....</p> 89 ????????????</td> 90 ????????</tr> 91 ????</table> 92 ????<!--模态框 弹出框--> 93 ????<div role="dialog" class="modal" id="layer">          //模态声明 94 ?95 ????????<div class="modal-dialog">                  //窗口声明 96 ????????????<div class="modal-content">               //内容声明 97 ????????????????<div class="modal-header">              //声明标题 98 ????????????????????<button type="button" class="close" data-dismiss="modal">    //data-dismiss表示点击X这个模态框消失 99 ????????????????????????<span>&times;</span>100 ????????????????????</button>101 ????????????????????<h4 class="modal-title">102 ????????????????????????确认删除吗?103 ????????????????????</h4>104 ????????????????</div>105 ????????????????<div class="modal-body text-right">106 ????????????????????<button class="btn btn-primary btn-sm" data-dismiss="modal">取消</button>      //点击取消,模态框消失107 ????????????????????<button class="btn btn-danger btn-sm" data-dismiss="modal" v-on:click="deleteMsg(nowIndex)">确认</button>  //点击确定删除当前数据,并且模态框消失108 ????????????????</div>109 ????????????</div>110 ????????</div>111 ????</div>112 </div>113 114 </body>115 </html>

 运行结果:

vue.js介绍,常用指令,事件,以及制作简易留言版

原文地址:http://www.cnblogs.com/15fj/p/8046137.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved