Wix Blocks 튜토리얼: 카운터 위젯 생성하기

10 분 분량
Wix Blocks는 모든 Wix Studio 사용자가 사용할 수 있습니다. Blocks에 액세스하려면, Wix Studio에 가입하세요.
이 튜토리얼에서는 숫자를 증가 및 감소시킬 수 있는 카운터 위젯을 구축하는 방법을 보여줍니다. 이 간단한 위젯을 통해 Wix Blocks로 할 수 있는 모든 작업을 안내합니다. 

카운터
이 위젯을 처음부터 구축할 것을 권장하지만, 문제가 발생하는 경우 Blocks에서 위젯 템플릿을 확인하고 Wix 계정에서 편집할 수 있습니다.

1 단계 | Blocks에 새 위젯 추가하기

  1. 빈 Blocks 앱을 추가합니다.
  2. 앱이 기본 위젯으로 생성되지 않은 경우 앱에 위젯을 추가합니다. 

2 단계 | 레이아웃터 추가하기

레이아웃터는 반응성을 허용하는 컨테이너입니다. 이는 다른 요소를 정리할 수 있습니다. 레이아웃터를 추가하려면: 
  1. 상단 메뉴의 요소 추가add 버튼을 클릭합니다. 
  2. 레이아웃 -> 플렉스박스 -> 레이아웃터를 클릭합니다.
  3. 세로 형태의 3섹션 레이아웃터를 클릭합니다. 

3 단계 | 위젯 요소 추가하기

버튼 추가하기

  1. 상단 메뉴의 요소 추가add 버튼을 클릭합니다. 
  2. 버튼을 클릭합니다. 
  3. 버튼을 레이아웃터의 오른쪽 섹션으로 끌어다 놓습니다.
4.  텍스트 및 아이콘 변경을 클릭합니다. 
5.  드롭다운 목록에서 텍스트를 선택합니다. 
6.  텍스트를 "+"로 변경합니다.
7.   속성inspector 패널에서 디자인design icon 아이콘을 클릭한 후 텍스트를 선택합니다.
8.  테마를 클릭한 후 드롭다운 목록에서 제목 6을 선택합니다. 
9.  다른 정사각형 버튼을 왼쪽 섹션으로 끌어다 놓습니다. 
10.  텍스트를 "-"로 변경합니다.

중앙 숫자 추가하기

  1. 요소 추가add 버튼을 클릭한 후 텍스트를 선택합니다.
  2. 32px 제목 요소를 레이아웃터의 중앙 섹션으로 끌어다 놓습니다. 
  3. 텍스트를 "0"으로 편집하고 중앙에 정렬합니다. 

ID 변경하기

  1. 회면 오른쪽 하단에서 속성 및 이벤트properties and events 아이콘을 클릭합니다. 
  2. 증가 버튼의 ID를 incBtn으로 변경합니다.
  3. 감소 버튼의 ID를 decBtn으로 변경합니다.
  4. 텍스트 요소의 ID를 countTxt로 변경합니다.

4 단계 | 요소에 코드 추가하기

이제 위젯이 버튼 클릭 시 카운트 업 및 다운을 수행하도록 할 차례입니다. 
1. 코드 탭을 클릭하거나 화면 하단으로 이동해 위젯에 코드를 추가합니다. 
2. onReady() 함수 앞에 다음 코드를 추가합니다.

1//Set the count to 0 let count = 0; //Assign the count to your text element function render() { $w('#countTxt').text  = count.toString();  } //Add a certain amount to the count and fire an event in the widget API function addToCount(amount) { count += amount; render(); }
3.  onReady() 함수에 다음 코드를추가합니다. 
1 $w('#incBtn').onClick(() => { addToCount(1); }); $w('#decBtn').onClick(()  => { addToCount(-1); }); render();
4.  미리보기 버튼을 클릭해 위젯이 어떻게 작동하는지 확인합니다. 

5 단계 | 위젯 API로 위젯 사용자 지정하기

위젯에 대한 API를 정의해 사용자(위젯을 설치하는 사이트 소유자)가 필요에 맞게 사용자 지정할 수 있습니다. API는 속성, 이벤트 및 내보낸 함수를 포함할 수 있습니다.

사이트 소유자가 카운트의 "단계"를 결정할 수 있기를 원한다고 가정해 보겠습니다. 아마도 고객은 단계를 2로 설정해 카운트가 0,2,4,6로 진행되기를 원할 것입니다. 

위젯 API에서 "단계"라는 속성을 정의하고 사용자가 사용자 지정할 수 있도록 허용할 수 있습니다.

"단계" 속성 정의하기

  1. 위젯 APIwidget api 아이콘을 클릭해 위젯 API 패널을 엽니다.
  2. 속성 섹션에서 속성 추가를 클릭하거나 섹션에 마우스오버한 후 표시되는 add 아이콘을 클릭합니다.
3.  속성 이름을 "단계"로 지정하고 숫자 유형을 지정합니다. 기본값은 1입니다. 

새로운 속성을 고려하도록 코드 변경하기

버튼 클릭 시 addToCount가 기본값인 1이 아닌 속성의 단계와 함께 호출되도록 코드를 변경하세요.
$widget.props를 사용해 속성에 액세스합니다(자동 완성 Velo 제안 참고). 
1$w.onReady(function () { $w('#incBtn').onClick(()  => { addToCount($widget.props.step);  }); $w('#decBtn').onClick(()  => { addToCount(-$widget.props.step);  }); render(); });

미리보기 모드에서 속성 테스트하기

  1. 미리보기를 클릭해 미리보기 모드로 이동합니다. 
  2. API 속성 테스트를 클릭합니다. 
3.  단계를 다른 숫자로 변경하고 위젯이 어떻게 작동하는지 확인합니다. 

위젯 API에 공개 이벤트 추가하기

위젯 API를 사용하면 원할 때마다 발생하는 이벤트를 추가할 수 있습니다. 
"카운트" 변수가 변경될 때 발생하는 이벤트를 추가합니다.
  1. 위젯 APIwidget api 아이콘을 클릭해 위젯 API 패널을 엽니다. 
  2. 이벤트 섹션에서 공개 이벤트 추가add를 클릭하거나 섹션에 마우스오버한 후 표시되는 아이콘을 클릭합니다. 
  3. 이벤트 이름 및 설명을 입력합니다.
4.  addToCount() 함수에 다음 줄을 추가해 카운트가 변경될 때 이벤트를 발생시킵니다. 
1$widget.fireEvent('change', count);
5.  이제 addToCount() 함수는 다음과 같아야 합니다. 
1function addToCount(amount) { count += amount; render(); $widget.fireEvent('change',  count); }
사이트 에디터에서 이벤트 확인하기
사이트에 위젯을 설치한 후에는 사이트 에디터에서 이벤트를 포착해야 합니다(이는 8단계에서 설명).

위젯 API에 공개 함수 추가하기

사이트 소유자가 카운트를 0으로 쉽게 설정할 수 있도록 reset() 함수를 생성 및 내보내기하세요. 
  1. 위젯 APIwidget api 아이콘을 클릭해 위젯 API 패널을 엽니다. 
  2. 함수 섹션에서 공개 함수 추가를 클릭하거나 섹션에 마우스오버한 후 표시되는 add 아이콘을 클릭합니다. 
  3. 사이트에서 함수를 사용할 모든 사용자가 읽을 수 있는 지정된 JSDoc(주석 블록)과 함께 기본 이름인 foo()의 비어 있는 새 함수가 생성됩니다. 
4.  함수 기본 코드 대신 다음 코드를 붙여넣습니다. 
1export function reset(){ //This function is part of my public API count = 0; render(); }
5.  JSDoc을 업데이트합니다. 참고: 함수의 주석을 이 형식으로 유지해야 합니다.  
1/** *@function *@description Sets count to 0 and renders.  *@returns nothing */
도움말:
반대의 경우도 가능합니다. 위의 적절한 JSDoc과 함께 내보낸 모든 함수는 오른쪽의 위젯 API 패널에 표시됩니다. 따라서, 공개 함수 추가를 클릭해 템플릿을 받는 대신 코드를 직접 작성할 수 있습니다. 

6 단계 | (선택사항) 위젯의 편집 시간 동작 구성하기

구성 탭에서는 사이트 소유자가 에디터에서 위젯을 편집할 때 위젯 및 해당 요소의 동작을 결정할 수 있습니다.  구성 탭에서 몇 가지 옵션을 사용해 보세요.
위젯 요소의 표시 이름을 설정합니다. 
  1. 감소 버튼을 선택합니다.
  2. 속성inspector 패널에서 구성 요소 이름 아래의 표시 이름을 "My Decrement"로 변경합니다.
에디터에서 텍스트 요소가 선택되지 않도록 설정합니다. 
  1. 카운트를 나타내는 텍스트 요소를 선택합니다. 
  2. 속성inspector 패널의 동작 섹션에서 선택 가능 옵션을 클릭해 파란색 체크 표시를 제거합니다. 

7 단계 | (선택사항) 더 많은 디자인 프리셋 추가하기

Blocks를 사용하면 디자인 프리셋을 통해 위젯의 디자인 및 레이아웃을 다양하게 변형할 수 있습니다. 다른 디자인 프리셋을 추가하려면: 
  1. 상단 메뉴에서 디자인 탭을 클릭합니다. 
  2. 앱 구조app structure. 디자인 창에서 디자인 프리셋 섹션의 + 디자인 프리셋 추가를 클릭합니다.
  3. 추가 작업 아이콘을 클릭해 이름을 변경합니다. 복제 또는 삭제할 수도 있습니다. 
4.  중간 섹션의 색상을 변경하는 등 위젯에 가시적인 변경 사항을 적용합니다.
프리셋을 앞뒤로 이동해 차이점을 확인하세요.
프리셋별 변경 vs 전체 변경
일부 디자인 및 레이아웃 변경 사항은 현재 프리셋에만 영향을 미치는 반면, 다른 변경 사항은 모든 프리셋에 영향을 미칩니다(자세히 보기). 

8 단계 | 사이트 에디터에서 이벤트 포착하기

중요!
이 단계는 Blocks가 아닌 Wix 에디터 또는 Studio 에디터에서 수행됩니다. 
앱에서 이벤트를 확인하려면 사이트 에디터로 이동하세요. 먼저 변경 이벤트에 대한 이벤트 처리기를 등록해야 합니다.
  1. 위젯 앱을 설치합니다. 
  2. 개발자 모드를 활성화합니다. 
  3. 속성 및 이벤트 아이콘을 클릭합니다.
  4. 위젯의 ID를 "counter1"과 같이 변경합니다.
  5. 이벤트 처리기 아래에서 onChange( )를 클릭합니다.
  6. 상자에서 count1_change를 선택합니다.
이제 함수를 작성합니다. `count`를 매개 변수로 가져오고 결정한 숫자에 도달하면 카운트를 재설정합니다. 이 예시에서는 30입니다. 함수는 다음과 같이 표시됩니다.
1export function counter1_change({data: count}) { // This function was added from the Properties & Events panel.  To learn more, visit http://wix.to/UcBnC-4  // Add your code for this event here: if (count > 30) { $w('#counter1').reset();}  }
미리보기 또는 게시해 사이트 작동을 확인하세요.

도움이 되었나요?

|