Vue簡單使用

父組件傳遞數據到子組件

傳遞一個String爲例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
			html,
			body {
				margin: 0;
			}

			.title_bar {
				background-color: red;
				height: 3.125rem;
				line-height: 3.125rem;
				text-align: center;
				color: white;
			}
		</style>
	</head>
	<body>
		<template id="header">
			<div>
				<div class="title_bar">
					{{header_text}}
				</div>
			</div>
		</template>

		<div id="app">
			<titlebar :header_text='header_text'></titlebar>
		</div>
	</body>
	<script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		//定義子組件接收header_text的數據類型
		Vue.component('titlebar', {
			template: '#header',
			props:['header_text'],
		});
		//定義父組件要傳遞的header_text
		new Vue({
			el: '#app',
			data: {
				header_text: '父組件頭部內容',
			},
			methods: {

			}
		});
	</script>
</html>

子組件傳遞數據到父組件

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>子組件傳值給父組件</title>
		<style type="text/css">

		</style>
	</head>
	<body>
		<div id="app">
			<div>
				{{name}}
			</div>
			<child @get='getData'></child>
		</div>
		<template id="child">
			<div @click="sendData">
				發送數據
			</div>
		</template>
	</body>
	<script src="../js/vue.js" type="text/javascript" charset="utf-8"></script>
	<script type="text/javascript">
		Vue.component('child', {
			template: "#child",
			methods: {
				sendData() {
					var obj = {
						'name': '鏡花水月'
					};
					this.$emit('get', obj);
				}
			}
		});
		new Vue({
			el: '#app',
			data: {
				name: '',
			},
			methods: {
				getData(obj) {
					this.name = obj.name;
				}
			},
		});
	</script>
</html>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章