笔记及源码地址 : https://github.com/wll8/vue_note


01

  • 2017-09-13

view
一个 mvvm框架(库),和 ag 类似。
比较小巧,容易上手。

mvc:
mvp
mvvm
mvx(mv*)

vue 和 ag 的区别。

不用纠结什么好,项目适合什么就用什么。
vue
简单
中文文档
指令: v-xxx
例子: html + json + vue实例
维护: 个人
适合: 移动

ag
上手难
英文文档
指令: ng-xxx
例子: 把所有属性和方法挂到 $scope 上
维护: 谷歌
合适: pc

共同点:
不兼容低版本ie

vue雏形

    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<div id="box">{{msg}}</div> <!-- html -->
<script>
var json={ /*json*/
el:'#box',
data:{
msg:'vue'
}
}
var c=new Vue(json); // vue实例
</script>

常用指令

指令: 扩展 html 标签功能,属性。
v-model 一般用表单元素 input 上。
注,教程失效部分:
v-repeat 已改为 v-for
$index 弃用,改为 `(value, index) in arr` 得到 index 变量。
$key 弃用,改为 `(value, key) in obj` 得到 key 变量。
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<div id="box">
<input v-model="msg">
{{msg}} <br>
{{arr}} <br>
{{obj}} <br> 数组<hr>
<p v-for="value in arr">{{value}}</p> 下标,数组<hr>
<p v-for="(value, index) in arr">{{index}}{{value}}</p> 对象<hr>
<p v-for="value in obj">{{value}}</p> key,对象<hr>
<p v-for="(value, key) in obj">{{key}}{{value}}</p> </div>
<script>
var json={ /*json*/
el:'#box',
data:{
msg:'vue',
arr:[1,2,3],
obj:{a:1,b:2}
}
}
var c=new Vue(json); // vue实例
</script>

事件

所有事件都写在 methods 中。
    <script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<div id="box">
<button @click="show()">alert</button>
</div>
<script>
var json={
el:'#box',
methods:{
show:function(){
alert(1);
console.log(this.$el);
}
}
}
var c=new Vue(json); // vue实例
</script>

vue + bootstrap 实现 todolist

todolist也被认为是留言版。
在线 bootstrap ,引入 -alpha 或 -beta 版本js会报错。

    https://cdn.bootcss.com/bootstrap/4.0.0-beta/js/bootstrap.js
Uncaught Error: Bootstrap dropdown require Popper.js https://cdn.bootcss.com/bootstrap/4.0.0-alpha.4/js/bootstrap.js
Uncaught Error: Bootstrap tooltips require Tether https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js
正常使用。

相关源码

01.vue雏形

  <script src="https://unpkg.com/vue"></script>
<div id="box">{{msg}}</div> <!-- html -->
<script>
var json={ /*json*/
el:'#box',
data:{
msg:'vue'
}
}
var c=new Vue(json); // vue实例
</script>

02.常用指令

  <script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<div id="box">
<input v-model="msg">
{{msg}} <br>
{{arr}} <br>
{{obj}} <br> 数组<hr>
<p v-for="value in arr">{{value}}</p> 下标,数组<hr>
<p v-for="(value, index) in arr">{{index}}{{value}}</p> 对象<hr>
<p v-for="value in obj">{{value}}</p> key,对象<hr>
<p v-for="(value, key) in obj">{{key}}{{value}}</p> 事件<hr>
<button @click="show()">alert</button>
<button @click="add()">arr push</button> v-show <hr>
<button @click="show_btn=!show_btn">显示隐藏</button>
<p v-show="show_btn">显示隐藏</p> </div>
<script>
var json={ /*json*/
el:'#box', /*html元素*/
data:{ /*变量*/
msg:'vue',
arr:[1,2,3],
counter:0,
show_btn:true,
obj:{a:1,b:2}
},
methods:{ /*所有方法都放在里面,注意s*/
show:function(){
alert(1);
console.log(this.$el);
},
add:function(){
this.arr.push(1);
}
}
}
var c=new Vue(json); // vue实例
</script>

03.todolist

  <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.css">
<script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.js"></script>
<script src="https://cdn.bootcss.com/vue/2.4.2/vue.js"></script>
<script>
window.onload=function(){
new Vue({
el:'#box',
data:{
myData:[
],
username:'',
age:'',
nowIndex:-1, // 当前点击的数据
},
methods:{
add:function(){
this.myData.push({
name:this.username,
age:this.age
});
this.username='';
this.age='';
},
del:function(n){
if(n==-2){
this.myData=[];
}else{
this.myData.splice(n,1); // 删除数据中的第n位
}
}
}
})
}
</script>
<div class="conatiner" id="box">
<form role="form">
<div class="form-group">
<label for="username">用户名:</label>
<input v-model="username" type="text" id="username" class="form-control" placeholder="输入用户名">
</div>
<div class="form-group">
<label for="age">年 龄:</label>
<input v-model="age" type="text" id="age" class="form-control" placeholder="输入年龄">
</div>
<div class="form-group">
<input type="button" value="添加" class="btn btn-primary" @click="add()">
<input type="reset" value="重置" class="btn btn-danger">
</div>
</form>
<hr>
<table class="table table-bordered table-hover">
<caption class="h3 text-info text-center">用户信息表</caption>
<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" @click="nowIndex=index">删除</button></td>
</tr>
<tr v-show="myData!=0">
<td colspan="4" class="text-right">
<button class="btn btn-danger btn-sm" data-toggle="modal" data-target="#layer" @click="nowIndex=-2">删除全部</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" id="layer">
<div class="modal-content">
<div class="modal-header">
<button class="close" data-dismiss="modal"><span>&times;</span></button>
<div class="modal-title">确认删除{{nowIndex==-2 ? '全部' : ''}}么?</div>
</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" @click="del(nowIndex)">确认</button>
</div>
</div>
</div>
</div>

vue.js精讲01的更多相关文章

  1. vue.js精讲02

    2017-09-17 笔记及源码地址 : https://github.com/wll8/vue_note vue 中的事件深入. 事件: @click/mouseover…事件简写: @ 如 @cl ...

  2. Vue 基础精讲

    Vue 基础精讲 Vue 官方文档:https://cn.vuejs.org/v2/guide/ VUE 实例 每个组件都是一个 vue 的实例. 一个 vue 项目是由实例组成的. vue 实例上有 ...

  3. vue.js插件使用(01) vue-resource

    本文的主要内容如下: 介绍vue-resource的特点 介绍vue-resource的基本使用方法 基于this.$http的增删查改示例 基于this.$resource的增删查改示例 基于int ...

  4. vue.js 精学组件记录

    组件需要注册后才可以使用. Vue.component('my-component',{ template:'<div>这是组件内容</div>' }): 局部注册组件 var ...

  5. vue.js 精学记录

    v-bind:class使用的方式: 1.对象与法::class="{'active':isActive}" 此时当isActive为true时,会拥有active 2.数组语法: ...

  6. Vue —— VueX精讲(1)

    大纲 这一讲我们最主要的就是学习vue中的数据管理VueX,这个是一个大杀器 一.回顾一些Promise相关的东西 Promise 有几个比较重要的方法,最重要的还是有一个叫做all的方法,这个也是非 ...

  7. 第三章、vue基础精讲

    3.1VUE实例 组件:全局组件,局部组件,vue的每个组件也是一个实例,有自己的实例属性和实例方法. 在console中调试vue,vm为vue的实例,凡是以$开头的都是vue的实例属性或者vue的 ...

  8. MVVM大比拼之vue.js源码精析

    VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多来自knockout.angularj ...

  9. vue.js源码精析

    MVVM大比拼之vue.js源码精析 VUE 源码分析 简介 Vue 是 MVVM 框架中的新贵,如果我没记错的话作者应该毕业不久,现在在google.vue 如作者自己所说,在api设计上受到了很多 ...

随机推荐

  1. OS Tools-GO富集分析工具的使用与解读详细教程

    我们的云平台上的GO富集分析工具,需要输入的文件表格和参数很简单,但很多同学都不明白其中的原理与结果解读,这个帖子就跟大家详细解释~ 一.GO富集介绍:       Gene Ontology(简称G ...

  2. python pandas 基础理解

    其实每一篇博客我都要用很多琐碎的时间片段来学完写完,每次一点点,用到了就学一点,学一点就记录一点,要用上好几天甚至一两个礼拜才感觉某一小类的知识结构学的差不多了. Pandas 是基于 NumPy 的 ...

  3. PYQT5学习笔记之各模块介绍

    Qtwidgets模块包含创造经典桌面风格的用户界面提供了一套UI元素的类 Qtwidegts下还有以下常用对象,所以一般使用Qtwidegts时会使用面向对象式编程 QApplication: ap ...

  4. localStorage过期策略

    localStorage过期策略 由于html5没有给本地存储设置过期策略,那么在处理数据的过期策略的时候可以编写自己过期策略程序,如下: <!DOCTYPE> <head> ...

  5. spark读取hbase形成RDD,存入hive或者spark_sql分析

    object SaprkReadHbase { var total:Int = 0 def main(args: Array[String]) { val spark = SparkSession . ...

  6. 可视化的fineBI很高大上 使用简单,简单操作了一下,拖一拖就行,收费 只能看一下人家的demo 网站 http://demo.finebi.com/webroot/decision#directory

  7. shell 冒号

    : ${TEST_LOOP:='1'} 如果不在前面加上:(冒号)命令,那么就会把${TEST_LOOP:='1'}本身当做一个命令来执行,报错是肯定的. [root@node56 ~]# : abc ...

  8. CentOS7下部署Django项目详细操作步骤

    严格按下面步骤 一.更新系统软件包 yum update -y 二.安装软件管理包和可能使用的依赖 yum -y groupinstall "Development tools" ...

  9. scrapy 去重 dont_filter=False

    yield Request(...... dont_filter=False)

  10. Golang利用select和普通函数分别实现斐波那契数列

    //斐波那契数列 //1 1 2 3 5 8 //观察规律 //第一轮:前两个数是1,1,相加等于2 //第二轮:第二个数和第三个数是1,2,相加等于3 //第三轮:第三个数和第四个数是2,3,相加等 ...