vue学习之一

搞懂一个东西,最好的方式是学习它的使用,准守它的规则,那么

它的才能更好了解到它的内部建构。

vue据说包含react+angular的的优点。

vue到底是什么?
一个mvvm框架(库)、和angular类似
比较容易上手、小巧
mvc:
  mvp
  mvvm
  mv*
  mvx
官网:http://cn.vuejs.org/
手册: http://cn.vuejs.org/api/

vue和angular区别?
vue——简单、易学
指令以 v-xxx
一片html代码配合上json,在new出来vue实例
个人维护项目

适合: 移动端项目,小巧

vue的发展势头很猛,github上start数量已经超越angular
angular——上手难
指令以 ng-xxx
所有属性和方法都挂到$scope身上
angular由google维护

合适: pc端项目

共同点: 不兼容低版本IE

例子:

<!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>Document</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="./lib/vue.js"></script>
    <script>
    /*有些方法在vue里,是和它內部的方法衝突的,例如delete,alert,所在標籤里無法使用的,不過在js還是可以使用的
        既然使用vue那麼就準守它的規則
    */
    window.onload=function(){
        var vue=new Vue({
            el:"#tblPage",
            data:{
                myData:[{username:"中國人",age:24},{username:"cliOu",age:20}],
                username:"",
                age:"",
                currentIndex:-1
            },
            methods:{
                add:function(){
                    this.myData.push({username:this.username,age:this.age});
                    this.username="";
                    this.age="";
                },
                deleteTbl:function(index){
                    if(index<0){
                        this.myData=[];
                    }else{
                        this.myData.splice(index,1);
                    }
                }
            }
        });
    }
    </script>
</head>
<body>
    <div class="container" id="tblPage">
        <form role="form">
            <div class="form-group">
                <label for="username">用户名:</label>
                <input type="text" class="form-control" id="username" placeholder="请输入" v-model="username">
            </div>
            <div class="form-group">
                <label for="age">年 龄:</label>
                <input type="text" class="form-control" id="age" placeholder="请输入" v-model="age">
            </div>
            <div class="form-group text-right">
                <button type="button" class="btn btn-sm btn-primary" v-on:click="add()">添加</button>
                <button type="reset" class="btn btn-sm btn-danger">重置</button>
            </div>
        </form>
        <table class="table table-bordered table-hover">
            <caption class="h4 text-info">用户表信息</caption>
            <tr>
                <th>序号</th>
                <th>名称</th>
                <th>年龄</th>
                <th>操作</th>
            </tr>
            <tr v-for="(item,index) in myData">
                <td>{{index+1}}</td>
                <td>{{item.username}}</td>
                <td>{{item.age}}</td>
                <td>
                    <button type="button" class="btn btn-xs btn-danger" v-on:click="currentIndex=index" data-toggle="modal" data-target="#layer">删除</button>
                </td>
            </tr>
            <tr v-show="myData.length>0">
                <td colspan="4" class="text-right">
                    <button type="button" class="btn btn-xs btn-danger" v-on:click="currentIndex=-1" data-toggle="modal" data-target="#layer">删除全部</button>
                </td>
            </tr>
            <tr v-show="myData.length==0">
                <td colspan="4" class="text-center text-muted">
                    无数据...
                </td>
            </tr>
        </table>
        <!-- 模態框 -->
        <div role="dialog" class="modal fade" id="layer">
            <div class="modal-dialog">
                <div class="modal-content">
                    <div class="modal-header">
                        <button type="button" class="btn btn-danger" class="close" data-dismiss="modal">
                            <span>&times;</span>
                        </button>
                        <h4 class="modal-title" v-show="currentIndex!=-1">你是否要刪除!</h4>
                        <h4 class="modal-title" v-show="currentIndex==-1">你是否要刪除全部!</h4>
                    </div>
                    <div class="modal-body text-right">
                        <button type="button" class="btn btn-sm btn-primary" data-dismiss="modal">取消</button>
                        <button type="button" class="btn btn-sm btn-danger" data-dismiss="modal" v-on:click="deleteTbl(currentIndex)">確認</button>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>
时间: 2024-08-07 00:16:57

vue学习之一的相关文章

Vue学习笔记入门篇——组件的使用

本文为转载,原文:Vue学习笔记入门篇--组件的使用 组件定义 组件 (Component) 是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素,封装可重用的代码.在较高层面上,组件是自定义元素,Vue.js 的编译器为它添加特殊功能.在有些情况下,组件也可以是原生 HTML 元素的形式,以 is 特性扩展. 组件使用 注册 注册一个全局组件,你可以使用 Vue.component(tagName, options).组件在注册之后,便可以在父实例的模块中以自定义元素 的形式使用.

Vue学习笔记入门篇——组件的内容分发(slot)

本文为转载,原文:Vue学习笔记入门篇--组件的内容分发(slot) 介绍 为了让组件可以组合,我们需要一种方式来混合父组件的内容与子组件自己的模板.这个过程被称为 内容分发 (或 "transclusion" 如果你熟悉 Angular).Vue.js 实现了一个内容分发 API,使用特殊的 'slot' 元素作为原始内容的插槽. 编译作用域 在深入内容分发 API 之前,我们先明确内容在哪个作用域里编译.假定模板为: <child-component> {{ messa

Vue学习笔记入门篇——组件的通讯

本文为转载,原文:Vue学习笔记入门篇--组件的通讯 组件意味着协同工作,通常父子组件会是这样的关系:组件 A 在它的模版中使用了组件 B.它们之间必然需要相互通信:父组件要给子组件传递数据,子组件需要将它内部发生的事情告知给父组件.然而,在一个良好定义的接口中尽可能将父子组件解耦是很重要的.这保证了每个组件可以在相对隔离的环境中书写和理解,也大幅提高了组件的可维护性和可重用性.在 Vue 中,父子组件的关系可以总结为 props down, events up.父组件通过 props 向下传递

Vue学习笔记目录

本文为转载,原文:Vue学习笔记目录 Vue介绍 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js. 如果你之前已经习惯了用jQuery操作DOM,学习Vue.js时请先抛开手动操作DOM的思维,因为Vue.js是数据驱动的,你无需手动操作DOM.它通过一些特殊的HTML语法,将DOM和数据绑定起来.一旦你创建了绑定,DOM将和数据

Vue学习笔记进阶篇——Render函数

本文为转载,原文:Vue学习笔记进阶篇--Render函数 基础 Vue 推荐在绝大多数情况下使用 template 来创建你的 HTML.然而在一些场景中,你真的需要 JavaScript 的完全编程的能力,这就是 render 函数,它比 template 更接近编译器. <h1> <a name="hello-world" href="#hello-world"> Hello world! </a> </h1>

vue学习笔记——简单的介绍以及安装(一)

学习编程需要的是 API+不断地练习^_^ Vue官网:https://cn.vuejs.org/ 菜鸟教程:http://www.runoob.com/vue2/vue-tutorial.html 1.简单的介绍 Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的渐进式框架. Vue 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件. Vue 学习起来非常简单,本教程基于 Vue 2.1.8 版

【Vue学习笔记1】基于Vue2.2.6版本

记录一下自己关于Vue学习的过程,便于以后归纳整理以及复习. 1.下载引用vue.js 下载: npm install vue ,然后引用. 或直接线上引用: <script src="https://unpkg.com/vue/dist/vue.js"></script> 2.基于vue2.26版本 MVVM模式,M(模型),V(视图),VM(VideoModel)

Vue学习笔记进阶篇——过渡状态

本文为转载,原文:Vue学习笔记进阶篇--过渡状态Vue 的过渡系统提供了非常多简单的方法设置进入.离开和列表的动效.那么对于数据元素本身的动效呢,比如: 数字和运算 颜色的显示 SVG 节点的位置 元素的大小和其他的属性 所有的原始数字都被事先存储起来,可以直接转换到数字.做到这一步,我们就可以结合 Vue 的响应式和组件系统,使用第三方库来实现切换元素的过渡状态. 状态动画和watcher 通过 watcher 我们能监听到任何数值属性的数值更新.可能听起来很抽象,所以让我们先来看看使用 T

Vue学习笔记进阶篇——列表过渡及其他

本文为转载,原文:Vue学习笔记进阶篇--列表过渡及其他本文将介绍Vue中的列表过渡,动态过渡, 以及可复用过渡是实现. 列表过渡 目前为止,关于过渡我们已经讲到: 单个节点 同一时间渲染多个节点中的一个 那么怎么同时渲染整个列表,比如使用 v-for ?在这种场景中,使用 <transition-group>组件.在我们深入例子之前,先了解关于这个组件的几个特点: 不同于 <transition>, 它会以一个真实元素呈现:默认为一个<span>.你也可以通过 tag

Vue学习笔记进阶篇——多元素及多组件过渡

本文为转载,原文:Vue学习笔记进阶篇--多元素及多组件过渡 多元素的过渡 对于原生标签可以使用 v-if/v-else.但是有一点需要注意: 当有相同标签名的元素切换时,需要通过 key 特性设置唯一的值来标记以让 Vue 区分它们,否则 Vue 为了效率只会替换相同标签内部的内容.即使在技术上没有必要,给在 <transition> 组件中的多个元素设置 key 是一个更好的实践. 示例: <transition> <button v-if="isEditing