关于vue的小实例
学习网址:http://www.runoob.com/vue2/vue-tutorial.html
下面是我在上面学着写的两个小例子,
1.

实现点击全选,下面的均被选中,再点击一下,下面的均取消选择;
当下面的均被选择的时候,全选被选中,值为true
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title> <script src="../vue.min.js"></script>
</head>
<body>
<div id="app">
<form>
<p>
全选
</p>
<input type="checkbox" id="all" v-model="allSelect" @click="AllSelcet()">
<label for="all">
{{ allSelect }}
</label>
<p>
很多个复选框
</p>
<input type="checkbox" id="apple" value="苹果" v-model="selects">
<label for="apple">
苹果
</label>
<input type="checkbox" id="banana" value="香蕉" v-model="selects">
<label for="banana">
香蕉
</label>
<input type="checkbox" id="orange" value="橘子" v-model="selects">
<label for="orange">
橘子
</label>
<p>
{{ selects }}
</p>
</form>
</div>
<script type="text/javascript">
new Vue({
el : '#app',
data : {
allSelect : false,
selects : [],
selectsAll : ['苹果','香蕉','橘子']
},
methods : {
AllSelcet : function(){
if(this.allSelect){
this.selects = this.selectsAll;
}
else{
this.selects = [];
}
}
},
watch : {
'selects' : function(){
if(this.selects.length == this.selectsAll.length){
this.allSelect = true;
}
else{
this.allSelect = false;
}
}
}
})
</script>
</body>
</html>
在代码中,使用了监听属性watch,通过监听selects数组中的长度变化,来操作allSelect的值。

2.

实现点击‘-’/‘+’,商品数量减少或者增加,相应的价格也会变化。即实现价格监听数量的变化
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title> <script src="../vue.min.js"></script>
<style rel="stylesheet">
table{
width: 600px;
height: 200px;
margin: 0 auto;
border: 1px solid darkgray;
}
table tr td{
width: 20%;
text-align: center;
}
h2{
position: relative;
left: 420px;
}
</style>
</head>
<body>
<div id="app">
<table>
<tr>
<th>商品序号</th>
<th>商品型号</th>
<th>商品价格</th>
<th>商品数量</th>
<th>清空</th>
</tr>
<tr v-for="shop in shops">
<td>{{ shop.id }}</td>
<td>{{ shop.size }}</td>
<td>{{ shop.price }}</td>
<td>
<button @click="shop.count-=1" v-bind:disabled="shop.count == 0">-</button>
{{ shop.count }}
<button @click="shop.count+=1">+</button>
</td>
<td>
<button @click="shop.count=0">清空</button>
</td>
</tr>
</table>
<h2>${{ totalPrice() }}</h2>
</div>
<script type="text/javascript">
new Vue({
el : '#app',
data : {
shops : [
{
id : 1,
size : "apple6",
price : 4000,
count : 1
},
{
id : 2,
size : "apple7",
price : 5000,
count : 1
},
{
id : 3,
size : "apple8",
price : 6000,
count : 1
}
]
},
methods : {
totalPrice : function(){
var total = 0;
for(var i = 0,len = this.shops.length;i<len;i++){
total += this.shops[i].count*this.shops[i].price;
}
return total;
}
}
})
</script>
</body>
</html>

在“-”按钮中,增加disabled属性,
实现:
当count值为0时,disabled为true,即“-”按钮此时不可用,即此时不可以再减少数量,即数量不能为负值;
当count值不等于0时,disabled为false,即“-”按钮可用。
需要使用v-bind指令,因为需要使用到count值,该值在下面vue实例中创建的。(v-bind:href="article.url")
注意:
1.数组属性length
2.v-for="shop in shops",shop只是他的别名
3.当合计价格的时候,需要使用循环对数组中的挨个进行累计。
关于vue的小实例的更多相关文章
- VueX(vue状态管理)简单小实例
VueX:状态管理 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 核心模块:State. ...
- Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用
Vue + WebApi 小项目:构造自己的在线 Markdown 笔记本应用 目录 概要 知识点 完整示例图 代码与资源文件 流程步骤 概要 基于 MVP 最小可行性产品设计理念,我们先完成一个可以 ...
- Vue之小入门
Vue之小入门 <div id="app">{{ greeting }}</div> <script> let oDiv = document. ...
- winform 异步读取数据 小实例
这几天对突然对委托事件,异步编程产生了兴趣,大量阅读前辈们的代码后自己总结了一下. 主要是实现 DataTable的导入导出,当然可以模拟从数据库读取大量数据,这可能需要一定的时间,然后 再把数据导入 ...
- CSS应用内容补充及小实例
一.clear 清除浮动 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&q ...
- Objective-C之代理设计模式小实例
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Objective-C之@类别小实例
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- OC小实例关于init方法不小心的错误
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- canva实践小实例 —— 马赛克效果
前面给大家带来了操作像素的API,此时此刻,我觉得应该配以小实例来进行进一步的说明和演示,以便给大家带来更宽广的视野和灵感,你们看了我的那么多的文章,应该是懂我的风格,废话不多说,进入正题: 这次给大 ...
随机推荐
- codeforces581C
Developing Skills CodeForces - 581C 你在玩一个游戏.你操作的角色有n个技能,每个技能都有一个等级ai.现在你有k次提升技能的机会(将其中某个技能提升一个等级,可以重 ...
- Qt 事件
Qt 的事件处理,实际上是有五个层次: 重写 paintEvent().mousePressEvent() 等事件处理函数.这是最普通.最简单的形式,同时功能也最简单. 重写 event() 函数.e ...
- centos6 nginx 安装【转】
原文 https://www.cnblogs.com/yaoximing/p/6068622.html 1.下载nginx 方法一 wget http://nginx.org/download/ngi ...
- IntelliJ IDEA 取消【import .;】星号导包
Setting -- Editor -- Code Style -- Java -- Imports 在 在 具体数值自行填写,够大即可,截图如下:
- python 模块之-json
python 模块json import json x="[null,true,false,1]" print(json.loads(x)) #---------------- ...
- 大学jsp实验4include,forword
一.实验目的与要求 1.掌握常用JSP动作标记的使用. 二.实验内容 1.include动作标记的使用 编写一个名为shiyan4_1.jsp的JSP页面,页面内容自定,但要求使用include动作标 ...
- BZOJ 1497 最大获利
最大权闭合子图 对于这个题,可以抽象成一个图论模型,如果我们把用户与其要求建立的中转站连边,获得的利益看成正权值,付出的代价看成负权值,我们可以发现,选取一个用户的时候,就相当于选取了一个闭合子图. ...
- 【AGC002E】Candy Piles 博弈论
题目大意 有\(n\)堆糖果,第\(i\)堆有\(a_i\)个. 两个人轮流决策,决策分为两种: 1.选择糖果数最多的一堆糖果,并把这堆糖全吃了. 2.在每堆非空的糖果堆里拿一颗糖吃掉. 吃掉最后一颗 ...
- bzoj 1257: [CQOI2007]余数之和 (数学+分块)
Description 给出正整数n和k,计算j(n, k)=k mod 1 + k mod 2 + k mod 3 + … + k mod n的值 其中k mod i表示k除以i的余数. 例如j(5 ...
- hosts学习整理
hosts是一个没有扩展名的系统文件,其基本作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库” (测试发现,对于https 协议的网站无效,果然https还是有作用的,不会被屏蔽) ...