본문 바로가기

FrontEnd/java script

[java script] Vue.js 데이터 변화 감지 프로퍼티(watch 2)

728x90
반응형

◎ 애니매이션 효과 적용 예제

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Vue.js sample</title>
		<link rel="stylesheet" href="style.css" >
	</head>
	
	<body>
		<h2>TweenMax 테스트</h2>
		<button id="movebtn" onclick="myMove()">이동</button>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script>
		<script>
			var num = 1;
			function myMove(){
				num++;
				if(num % 2 == 0){
					TweenMax.to('#movebtn', 0.5, {x: "500px"});
				} else{
					TweenMax.to('#movebtn', 0.5, {x: "0px"});
				}
			}
		</script>
	</body>
</html>
<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script>

위와 같은 코드를 사용하면 애니매이션을 적용할 수 있습니다.

여기서는 따로 Vue를 사용하지 않고 그냥 method로만 결과를 출력했습니다.

TweenMax.to( ' id명 ', 이동시간, { 이동축 : "이동 값"}) 과 같은 방법으로 사용하면 애니매이션 효과가 나타납니다.

 

 

 

◎ watch를 이용한 애니매이션 추가 예제

 

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title>Vue.js sample</title>
		<link rel="stylesheet" href="style.css" >
		<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
		<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.19.1/TweenMax.min.js"></script>
	</head>
	
	<body>
		<h2>숫자가 빠르게 올라가는 애니메이션을 보여주며 값이 증가하는 input태그 예제</h2>
		<div id="app">
			<p>값은 {{ animeNumber }}입니다.</p>
			<input type="number" v-model.number="myNumber">
		</div>
		<script>
			new Vue({
				el: '#app',
				data: {
					myNumber: 0,          // 입력 값
					tweenedNumber: 0      // 애니메이션 되는 값
				},
				watch: {
					myNumber:function(){
						TweenMax.to(this.$data, 3, {tweenedNumber: this.myNumber})
					}
				},
				computed:{
					animeNumber: function(){
						return this.tweenedNumber.toFixed(0);
					}
				}
			})
		</script>
	</body>
</html>
숫자를 입력하면 해당 값만큼 애니메이션 효과를 이용해 값을 증가시킵니다.

this.$data는 data에 있는 모든 데이터 값을 다 가져오는 것입니다.

애니메이션 효과는 tweenedNumber를 myNumber만큼 변화시켜 주는 것입니다.

computed를 사용해서 tweendedNumber의 소숫점이 출력이 되지 않도록하고 정수 값으로만 증가하게 됩니다.

 

 

computed : 종속적인 관계를 가지고 있을 경우, 자신의 값의 변화가 아닌 다른 값의 변경이 있어야 되는 경우 사용합니다.

watch : 자기 자신의 값에 변경이 있을 때 사용합니다.

 

 

이렇게 watch와 computed의 예제들을 실습해보았습니다!

쉽게 말하면 computed는 데이터가 변하면 다시 계산해주고 watch는 데이터가 변하는 것을 감시하여 실행합니다.

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

728x90
반응형