zoukankan      html  css  js  c++  java
  • 042——VUE中组件之子组件使用$on与$emit事件触发父组件实现购物车功能

    <!DOCTYPE html>
    <html lang="en">
    
    	<head>
    		<meta charset="UTF-8">
    		<title>组件之子组件使用$on与$emit事件触发父组件实现购物车功能</title>
    		<script src="vue.js"></script>
    	</head>
    
    	<body>
    		<div id="hdcms">
    			<hd-news :listdata="goods" @sum="total"></hd-news><!--@sum的作用是把父組件的事件綁定到子組件中-->
    			<h2>总价:{{totalPrice}}</h2>
    		</div>
    		<script typeof="text/x-template" id="hdNews">
    			<table border="2" bordercolor="black" cellspacing="0" cellpadding="20">
    				<tr>
    					<td>商品名称</td>
    					<td>价格</td>
    					<td>数量</td>
    				</tr>
    				<tr v-for="(v,k) in listdata">
    					<td>{{v.name}}</td>
    					<td>{{v.price}}</td>
    					<td>
    						<input type="text" v-model="v.num" @blur="sums"><!--失去焦点之后触发子组件绑定的事件-->
    					</td>
    				</tr>
    			</table>
    		</script>
    		<script>
    			var hdNews = {
    				template: "#hdNews",
    				props: ['listdata'],//继承父组件的数据
    				methods: {
    					sums() {
    						this.$emit('sum');//@emit的作用就是子组件呼叫父组件的事件
    					}
    				}
    			};
    			new Vue({
    				el: "#hdcms",
    				components: {hdNews},
    				mounted() { //当vue执行完毕之后,去执行函数
    					this.total();
    				},
    				data: {
    					totalPrice: 0,
    					goods: [{
    							name: '苹果X',
    							price: 200,
    							num: 1
    						},
    						{
    							name: '华为P10',
    							price: 100,
    							num: 1
    						},
    						{
    							name: '小米6',
    							price: 50,
    							num: 1
    						},
    					]
    				},
    				methods: {
    					total() {
    						this.totalPrice = 0;
    						this.goods.forEach((v) => {
    							this.totalPrice += v.num * v.price;
    						});
    					}
    				}
    			});
    		</script>
    
    	</body>
    
    </html>
    

      

  • 相关阅读:
    xcode修改默认头部注释(__MyCompanyName__) (转)
    ios7注意事项随笔
    二分查找(BinarySearch)
    选择排序(SelectionSort)
    插入排序(InsertionSort)
    堆排序(HeapSort)
    归并排序(MergeSort)
    快速排序(QuickSort)
    基本-正则表达式
    2.5亿个整数中找出不重复的整数
  • 原文地址:https://www.cnblogs.com/yiweiyihang/p/8203625.html
Copyright © 2011-2022 走看看