Vue常用指令详解分析


Posted in Javascript onAugust 19, 2018

Vue入门

Vue是一个MVVM(Model / View / ViewModel)的前端框架,相对于Angular来说简单、易学上手快,近两年也也别流行,发展速度较快,已经超越Angular了。比较适用于移动端,轻量级的框架,文件小,运行速度快。最近,闲来无事,所以学习一下Vue这个流行的框架,以备后用。

一、指令

  1. v-model 多用于表单元素实现双向数据绑定(同angular中的ng-model)
  2. v-for 格式: v-for="字段名 in(of) 数组json" 循环数组或json(同angular中的ng-repeat),需要注意从vue2开始取消了$index
  3. v-show 显示内容 (同angular中的ng-show)
  4. v-hide 隐藏内容(同angular中的ng-hide)
  5. v-if 显示与隐藏 (dom元素的删除添加 同angular中的ng-if 默认值为false)
  6. v-else-if 必须和v-if连用
  7. v-else 必须和v-if连用 不能单独使用 否则报错 模板编译错误
  8. v-bind 动态绑定 作用: 及时对页面的数据进行更改
  9. v-on:click 给标签绑定函数,可以缩写为@,例如绑定一个点击函数 函数必须写在methods里面
  10. v-text 解析文本
  11. v-html 解析html标签
  12. v-bind:class 三种绑定方法 1、对象型 '{red:isred}' 2、三元型 'isred?"red":"blue"' 3、数组型 '[{red:"isred"},{blue:"isblue"}]'
  13. v-once 进入页面时 只渲染一次 不在进行渲染
  14. v-cloak 防止闪烁
  15. v-pre 把标签内部的元素原位输出

二、基本组件属性

new Vue({
 el,     // 要绑定的 DOM element
 template,  // 要解析的模板,可以是 #id, HTML 或某?? DOM element
 data,    // 要绑定的数据
 computed,  // 依赖于别的数据计算出来的数据, name = firstName + lastName
 watch,   // 监听方法, 监听到某一数据变化时, 需要做的对应操作
 methods,  // 定义可以在元件或模板?仁褂玫姆椒
})

三、基础使用

1.html

<div id="app">
  <p>{{msg}}</p>
</div>

2.js

var app=new Vue({
    el:'#app',//标签的类名、id,用于获取元素
    //以键值对的形式存放用到的数据成员
    data:{
      msg:'显示的内容'    
    },
    //包含要用到的函数方法
    methods:{      
    }
  });

这样js中msg的内容就会在p标签内显示出来。

四、实例

利用bootstrap+vue实现简易留言板的功能,可以增加、删除,弹出模态框

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>简易留言板</title>
  <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">
  <style>

  </style>
  <link rel="stylesheet" href="../../node_modules/bootstrap/dist/css/bootstrap.min.css" rel="external nofollow" >
  <script src="../../node_modules/jquery/dist/jquery.min.js"></script>
  <script src="../../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>

  <script src="../../node_modules/vue/dist/vue.js"></script>
  <script>
   window.onload=function(){
     new Vue({
      el:'#box',
      data:{
        myData:[],
        username:'',
        age:'',
        nowIndex:-100
      },
      methods:{
        add:function(){
         this.myData.push({
           name:this.username,
           age:this.age
         });

         this.username='';
         this.age='';
        },
        deleteMsg:function(n){
         if(n==-2){
           this.myData=[];
         }else{
           this.myData.splice(n,1);
         }
        }
      }
     });
   };
  </script>
</head>
<body>
<div class="container" id="box">
  <form role="form">
   <div class="form-group">
     <label for="username">用户名:</label>
     <input type="text" id="username" class="form-control" placeholder="输入用户名" v-model="username">
   </div>
   <div class="form-group">
     <label for="age">年 龄:</label>
     <input type="text" id="age" class="form-control" placeholder="输入年龄" v-model="age">
   </div>
   <div class="form-group">
     <input type="button" value="添加" class="btn btn-primary" v-on:click="add()">
     <input type="reset" value="重置" class="btn btn-danger">
   </div>
  </form>
  <hr>
  <table class="table table-bordered table-hover">
   <h3 class="h3 text-info text-center">用户信息表</h3>
   <tr class="text-danger">
     <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,index) in myData">
     <td>{{index+1}}</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>
     </td>
   </tr>
   <tr v-show="myData.length!=0">
     <td colspan="4" class="text-right">
      <button class="btn btn-danger btn-sm" v-on:click="nowIndex=-2" data-toggle="modal" data-target="#layer" >删除全部</button>
     </td>
   </tr>
   <tr v-show="myData.length==0">
     <td colspan="4" class="text-center text-muted">
      <p>暂无数据....</p>
     </td>
   </tr>
  </table>

  <!--模态框 弹出框-->
  <div role="dialog" class="modal fade bs-example-modal-sm" id="layer">
   <div class="modal-dialog">
     <div class="modal-content">
      <div class="modal-header">
        <h4 class="modal-title">确认删除么?</h4>
        <button type="button" class="close" data-dismiss="modal">
         <span>×</span>
        </button>

      </div>
      <div class="modal-body text-right">
        <button data-dismiss="modal" class="btn btn-primary btn-sm">取消</button>
        <button data-dismiss="modal" class="btn btn-danger btn-sm" v-on:click="deleteMsg(nowIndex)">确认</button>
      </div>
     </div>
   </div>
  </div>
</div>
</body>
</html>

运行效果:

Vue常用指令详解分析

Javascript 相关文章推荐
Javascript 去除数组的重复元素
May 04 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
Jun 29 Javascript
深入理解JavaScript定时机制
Oct 29 Javascript
推荐40个非常优秀的jQuery插件和教程【系列三】
Nov 09 Javascript
JavaScript设计模式学习之“类式继承”
Mar 12 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
Mar 23 Javascript
jQuery插件uploadify实现ajax效果的图片上传
Jun 18 Javascript
webpack踩坑之路图片的路径与打包
Sep 05 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
微信小程序购物车、父子组件传值及calc的注意事项总结
Nov 14 Javascript
axios实现文件上传并获取进度
Mar 25 Javascript
Vue混入mixins滚动触底的方法
Nov 22 Javascript
使用layui 渲染table数据表格的实例代码
Aug 19 #Javascript
layui获取选中行数据的实例讲解
Aug 19 #Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
Aug 19 #Javascript
菊花转动的jquery加载动画效果
Aug 19 #jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 #jQuery
jQuery UI实现动画效果代码分享
Aug 19 #jQuery
基于layui数据表格以及传数据的方式
Aug 19 #Javascript
You might like
PHP实现多图片上传类实例
2014/07/26 PHP
php session 写入数据库
2016/02/13 PHP
Yii框架实现邮箱激活的方法【数字签名】
2016/10/18 PHP
centos+php+coreseek+sphinx+mysql之一coreseek安装篇
2016/10/25 PHP
PHP使用第三方即时获取物流动态实例详解
2017/04/27 PHP
ThinkPHP 5.1 跨域配置方法
2019/10/11 PHP
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
jquery自定义属性(类型/属性值)
2013/05/21 Javascript
js将当前时间格式转换成时间搓(自写)
2013/09/26 Javascript
js控制鼠标事件移动及移出效果显示
2014/10/19 Javascript
node.js中的fs.fsyncSync方法使用说明
2014/12/15 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
JS中artdialog弹出框控件之提交表单思路详解
2016/04/18 Javascript
js实现常用排序算法
2016/08/09 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
js实现点击按钮随机生成背景颜色
2020/09/05 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
从Python的源码来解析Python下的freeblock
2015/05/11 Python
Python使用shelve模块实现简单数据存储的方法
2015/05/20 Python
python从网络读取图片并直接进行处理的方法
2015/05/22 Python
python中偏函数partial用法实例分析
2015/07/08 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
pip命令无法使用的解决方法
2018/06/12 Python
美国网上鞋城:Shoeline.com
2016/11/17 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
高中生毕业自我鉴定
2013/10/10 职场文书
读书小明星事迹材料
2014/05/03 职场文书
文明村镇申报材料
2014/05/06 职场文书
2014年体育教师工作总结
2014/12/03 职场文书
助学金感谢信
2015/01/20 职场文书
python中的None与NULL用法说明
2021/05/25 Python
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android