강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của zungssam9813
zungssam9813

câu hỏi đã được viết

Tạo Nodebird SNS với Vue

페이지가 변경될때 마다 같은 함수를 mounted() 안에서 실행하는 방법이 있을까요?

Đã giải quyết

Viết

·

1.9K

0

페이지가 변경됐을때마다 해당페이지에서 한번만 mounted() 안에서 함수를 실행하고 싶습니다.

플러그인에 mixin 으로 아래처럼 했더니

import Vue from 'vue';

if (!Vue.__my_mixin__) {
    Vue.__my_mixin__ = true;
    Vue.mixin({
        mounted() {
            console.log('hello from mixin!');
        },
    });
}

한번만 실행돼야 하는데 모든 컴포넌트에 적용되는지 수십번씩 실행되네요.;;;;

위 방법이 아니더라도 페이지 전환될 때 마다 마운트 후에 함수를 한번 실행하는 방법이 있을까요?

mysqlnodejsvuexvuejsawsssr

Câu trả lời 4

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

https://kim-jangwook.medium.com/nuxt-js-cookbook-execute-event-when-route-changes-a1dbe15a82cb

이런 방법이 있습니다. watch: $route 부분입니다.

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

마운트는 원래 컴포넌트마다 한 번 씩 실행되는 것입니다. 바꾸실 이유가 없습니다. 한 번만 실행되어야하는 이유를 알려주세요. 더 좋은 방법이 있을겁니다.

0

zungssam9813님의 프로필 이미지
zungssam9813
Người đặt câu hỏi

매번 감사합니다^^

0

zungssam9813님의 프로필 이미지
zungssam9813
Người đặt câu hỏi

아~ 페이지가 변경될때에만 주소를 읽어서 특정 함수(주소와 특정 노드들의 값 비교)를 한번만 실행하고 싶었습니다.

노드의 값과 비교하려니 mounted 에 적용하려 했습니다.

일단 default 레이아웃의 watch에 $route(to, from) {...} 형태로 하니 되긴 하는데 맞나 모르겠네요.

다시 확인해보니 watch에 넣으면 새로고침 시에는 작동을 안하네요.;;;

Hình ảnh hồ sơ của zungssam9813
zungssam9813

câu hỏi đã được viết

Đặt câu hỏi