도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

안녕하세요 상훈입니다. 아주 예전에 이와같은 내용을 작성하긴했었던 것 같은데, 아예 뷰를 안쓰다보니 완전히 까먹어서.. 다시 공부해서 다시 글을 작성하게 되었습니다!

사전지식은 다음과 같습니다.

1. 컴포넌트의 관계를 이해한다.
2. 자식 컴포넌트 → 부모 컴포넌트로 데이터를 전달하고싶다.

 

Vue.js Todolist 를 구현할 때 Add의 한 부분을 담당하고 있습니다.

 

1. 부모 컴포넌트 Parent Component

//부모컴포넌트 : Todo.vue
<template> 
  <div>
    <h3>Greeting!</h3>
    <TodoInput @addNewTodo="checknew" />
  </div>
</template>
<script>
import TodoInput from "./TodoInput.vue";

export default {
  components: {
    TodoInput,
  },
  methods: {
    checknew(newItem) {
      this.newTodo = newItem;
    },
  },
};
</script>

 

2. 자식 컴포넌트 Child Component

//자식 컴포넌트 : TodoInput.vue
<template>
  <div>
    <input
      type="text"
      maxlength="20"
      v-model="newItem"
      @keyup.enter="addTodo"
    />
    <button type="button" @click="addTodo">Add</button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      newItem: "",
    };
  },
  methods: {
    addTodo() {
      this.$emit("addNewTodo", this.newItem);
    },
  },
};
</script>

3. 위 코드를 보고서 이해가 잘 안되셨을 때 봐주세요.

핵심은 $emit@이벤트 핸들러입니다.

자식 컴포넌트에서 
1) addTodo 라는 메서드를 실행합니다.
2) $emit을 통해 addNewTodo 라는 Props로 전달합니다.

부모 컴포넌트에서
1) addNewTodo 라는 Props가 있습니다.
2) 그리곤 newTodo 라는 메서드로 값을 받아옵니다.

부모 > 자식의 관계는 전부 Props 입니다.

addNewTodo 의 props 명으로 이벤트를 지정해놓는 것이죠

그런데, 자식에서 이벤트가 발생 → $emit으로 메서드 newTodo 를 콜백함수처럼 받아온다고 생각하면, 이해하시기 수월해집니다. 

 

Vanila Javascript 

//부모 컴포넌트
parent (function (ret) {
    //자식 컴포넌트에서 보낸 값을 ret으로 받아옴
    console.log(ret);
});

물론 parent라는 함수를 선언해주지 않았기 때문에 위 함수는 오류지만, 요점은 콜백함수처럼 생각하면된다는 겁니다.

반응형

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

안녕하세요 상훈입니다. 

리액트 네이티브 앱 구동해야지! 하는 순간 난데없이 날벼락을 맞았습니다.

EXPO를 사용하던, react-native-cli 를 사용하던 상관없을 것으로 판단하고 있습니다. 

ㅎㅎ

Error: adb: failed to install C:\Users\gwi01\.expo\android-apk-cache\Exponent-2.25.2.apk: Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE] › Stopped server

이런 오류가 출력되었는데요, 

오류 내용 이미지

1. 어디에서는 pc를 껐다가 전체적으로 재구동 해봐라~

2. 공식 사이트에서는 SDK 를 재설치 해봐라~ 

등등의 많은 의견들을 보았습니다. 

[ STORAGE ] 라는 부분에 주목하였고,
아무래도 AVD 내부의 용량문제가 아닐까? 라는 생각에 바로 새로운 AVD 만들어주었습니다.

 

 

그 후 바로 구동해보니 정상적으로 출력됨을 확인했습니다. 

참고 바랍니다 ㅎㅎ

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

어이가 없네요. 20분은 날린것 같은디.

다행히.. 이렇게 오늘도 살아남았습니다.

 

내 황금같은 저녁 시간에. ㅠ

고생하십쇼!

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

반응형

안녕하세요 상훈입니다.

구글 애드센스가 드.디.어. 왔습니다.

애드센스 우편

진짜 얘네는 몇 달 만에 우편 전달해주는지 모르겠음..

사실 우편으로 보내는 거보다 모바일 문자로 보내는 게 비용면에서나 시간적 측면에서나 환경면에서 무조건 좋을 텐데.

왜.

이걸 써서 보내는 걸까요.

이해가 되지 않습니다.

아무튼 드디어.. 휴 ㅠㅠ 거의 5달 만에 받은 것 같네요.

애드센스 잘렸다가 다시 복귀되었을까 모르겠네요.

한번 제대로 됐는지 광고 눌러서 확인 좀 해주세요.

감사합니다.

반응형

안녕하세요, 상훈입니다.

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

ReactNative + Expo, 구글 혹은 카카오 로그인을 구현하려고 하는데, 안드로이드 연동을 위해선

sha-1 인증서 디지털 지문

 이 필요합니다.

현상태

저렇게 SHA-1 인증서 디지털 지문이 필요한데요, 어떻게 하면 얻을 수 있는지 포스팅하도록 하겠습니다.

 

빌드를 해야한다.

1. 로그인
2. 빌드
3. 빌드 완료 확인, 내용 체크
4. SHA-1 지문 입력

순서로 소개하도록하겠습니다.

 

1. 로그인

eas 를 전역(-g)으로 설치

npm install -g eas-cli

로그인

eas login

정상적으로 로그인되었을 때

 

로그인이 되었지만, 혹시 모르니 확인을 한 번 더 해주기.

eas whoami

로그인 확인완료

로그인이 정상적으로 되었음을 확인할 수 있습니다.

 

2. 빌드 시작

 빌드 환경설정을 해줍니다.

eas build:configure

빌드 과정

저는 All 을 선택하였습니다. 궁극적으로 android뿐 아니라 ios도 해줄 것이기 때문이죠.

eas.json

그러면 eas.json이 생성된것을 확인하실 수 있습니다.

 

이제 BUILD를 해봅시다

eas build --platform all

빌드 과정

 

3. 빌드 완료 확인, 내용 체크

성공적으로 빌드되었다면, 확인을 해봅시다

eas build:list

빌드 리스트

첫 빌드가 된 앱의 형태입니다! 

 1.0.0 으로 따끈따끈한 최신 녀석이죠 (RAW FISH 급)

 

이제 EXPO 로 이동하여 확인해보시죠

 

Expo

Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React.

expo.dev

 

DashBoard > Configure > Credentials 를 클릭해보시면

프로젝트의 이름

아까 빌드할 때 만들어놓았던 내용이 이곳에 출력됩니다.   클릭해서 들어가주세요

 

SHA-1 Certificate Fingerprint

라는 항목 아래에 써져있는것을 확인하실 수 있습니다. 

해당 내용을 구글의 경우

입력해주세요!

 

이상입니다.

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

반응형

안녕하세요, 상훈입니다.

 

리액트 네이티브(React Native)를 통해 expo를 실행할 때 이렇게 오류가 출력되었습니다.

 

No Android connected device found, and no emulators could be started automatically.

안드로이드 디바이스와 연결된 에뮬레이터가 없어서 그렇습니다.

일단 안드로이드 스튜디오를 깔아줍시다.

오류 안내 문구에서 

Please connect a device or create an emulator (https://docs.expo.dev/workflow/android-studio-emulator).

이렇게 작성된 내용이 있을 텐데, 해당 링크를 클릭해서 들어가시고, 다운로드 해주세요.

 

Expo Android Download Link btn
Android Studio Download btn

 

설치 후 안드로이드 스튜디오를 시작하면 아래와 같은 화면을 보실 수 있습니다.

 

안드로이드 스튜디오를 여는게 아니라 에뮬레이터만 띄우고 싶으시다면, [ Virtual Device Manager] 를 눌러서 설치해주세요. (오른쪽에 점3개 눌러주세요)

virtual device manager click info

 

설치가 다 된 모습은 아래와 같습니다. 

 

이상입니다.

안드로이드 디바이스 환경설정 방법은 흐름대로 따라가시면 쉽게 가능합니다.

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

반응형

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

안녕하세요 상훈입니다.

데스티니가디언즈2 Destiny2 에서 이번 해적 시즌을 진행중,

 

[함선당탈자의 항해 (12단계)] 퀘스트에서 "원정에서 묻혀 있는 보물을 찾고 발사기지에서..." 라는 퀘스트가 있습니다.

 

처음 하신 분들이라면 "아니, 이걸 어떻게 얻지?" 라는 의문을 표하실겁니다.

왜냐하면 묻혀있는보물을 얻으려면 지도가 있어야하거든요.

 

지도를 얻으려면,

 

1. [선장의 아틀라스] 라는 퀘스트를 우클릭하시면 됩니다.

순서는 아래와 같구요,

선장의 아틀라스

보시면 지도조각이라는 아이템이 10개로 보이실겁니다.

1) 지도 조각 : [범선파괴] 라는 퀘스트를 클리어하면 10개정도를 얻을 수 있다.
2) 보물 좌표 : 원정대, 선봉대, 갬빗 등의 플레이리스트를 플레이 시 몹을 잡고 얻을 수 있다.

 

2. 빈 지도 페이지에서 지도 선택해줍니다

 

선택을 하셨으면,

이제 원정 플레이리스트를 가셔서 마지막 보스를 잡고 보물이 묻혀 있는것처럼 보이는 땅을 [상호작용] 해주시면 됩니다.

 

이상입니다! 즐겜하세요.

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

반응형

안녕하세요 상훈입니다!

구글 애드센스가 끊긴지도.... 어언 2주가 되어가네요! 하하 빌어먹게도 멋진 녀석 같으니라고^^7

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

 

자바스크립트로 데이터를 받아왔는데, 숫자만 출력하고 싶습니다. 어떻게 해야할까요?

let str = "안녕하세요1239입니다.";

str = replaceAll(/[^0-9]/g, "");

로 간단하게 처리가 가능합니다.

 

사용 방법은 아래와 같습니다.

str.replaceAll(없애고싶은내용, 바꿀내용);

 

사용 예시를 작성해보겠습니다!

 

숫자의 데이터가 필요한 상황인데, 애석하게도 숫자만 온게 아니라 문자가 포함된 문자열로 출력되었다는 가정입니다.

function changeLetter (str, successCallback) {
	str = str.replaceAll(/[^0-9]/g, "");
    successCallback(str); //str을 반환
}

changeLetter("안녕하세요12395", function (ret) { //성공 콜백함수와 데이터
	
    //ret이 변경된 새로운 str이 되는것이죠.
    $("#여기에작성해주세요").text(ret); //12395
    
});

결과적으로, id: 여기에작성해주세요 라는 아이디를 가진 태그의 텍스트에 숫자만 출력되는 내용이 될겁니다.

콘솔창에 작성해본 예시

이렇게 함수로 쓰면 언제든지 함수만 호출해서 꺼내올 수 있게 작성할 수 있습니다!

 

다만 이것의 문제는 문자열이라는 것에 있죠.

 

조금 더 나아가서 저 문자열을 1)숫자로 변경하고, 2) 뒤에 원을 붙여서 출력하도록 하겠습니다.

function changeLetter (str, successCallback) {
	str = str.replaceAll(/[^0-9]/g, "");
    successCallback(str);
}

changeLetter("안녕하세요12395", function (ret) { //성공 콜백함수와 데이터
	
    //ret이 변경된 새로운 str이 되는것이죠.
    ret = parseInt(ret);
	console.log(ret + "원");
});

typeof 도 함께 출력하여 숫자로 변경되었음을 확인

이렇게  parseInt 혹은 Number... 등을 이용해서 숫자로 변경하고,

출력할 때 "원" 문자까지 합쳐서 출력하는 방식을 알아보았습니다. 

 

감사합니다.

 

도움이 되셨다면 광고 한번 클릭해주세요. 블로그 운영에 큰 힘이 됩니다. 감사합니다.

반응형

 

구글 에드센스 자기들이 우편 안보내줘놓고 멋대로 에드센스 끊어버리는거 봐

 

2번이나 보냈는데 아직도 안옴 ㅋㅋㅋ 

 

이번이 3번째다 정신좀 차려라 구글

7월에 발송시작했다면서 아직도 안와 ㅋㅋㅋㅋㅋㅋ 제정신이냐?

반응형

'일상' 카테고리의 다른 글

카카오톡 11주년 이벤트 써버리기  (0) 2022.12.15
드디어 왔습니다.  (6) 2022.10.06
고스트 리콘 웃긴짤  (1) 2022.03.27
책 소개 : 소프트웨어 아키텍처101  (0) 2022.03.24
[ Laravel - Vue.js ] 스펙업! 강의 추천  (0) 2021.10.01

+ Recent posts