애플 릿 의 기본 사용 지식 포인트(매우 전면적,추천!)

13907 단어 애플 릿기초
앱 등록 할 때 뭐 해요?
  • 작은 프로그램의 진입 장면 을 판단 한다
  • 4.567917.생명 주기 함 수 를 감청 하고 생명 주기 에 대응 하 는 업무 논 리 를 집행 한다.예 를 들 어 특정한 생명 주기 함수 에서 위 챗 사용자 의 정 보 를 얻 는 것 이다4.567917.App()인 스 턴 스 는 전체 적 으로 공유 되 는(단일 대상)이기 때문에 우 리 는 일부 공유 데 이 터 를 여기에 놓 을 수 있 습 니 다.
    페이지 를 등록 할 때,우 리 는 일반적으로 무엇 을 해 야 합 니까?
    4.567917.수명 주기 에 네트워크 요청 을 보 내 고 서버 에서 데 이 터 를 가 져 옵 니 다wxml 참조 전시 에 편리 하도록 일부 데 이 터 를 초기 화 합 니 다
  • wxml 의 일부 사건 을 감청 하고 해당 하 는 사건 함수 바 인 딩
  • 다른 일부 감청,(예 를 들 어 페이지 스크롤,위로 당기 기 새로 고침,아래로 당기 기 더 많이 불 러 오기 등)
  • wxml 에 대한 template 와 include
    wxml 에 서 는 Page/Component 에서 함 수 를 직접 호출 할 수 없습니다.
    wxml 파일 에서 template 라벨 을 정의 합 니 다.template 라벨 은 호출 되 지 않 은 상태 에서 렌 더 링 을 하지 않 습 니 다.
    name 속성 과 is 속성 대응;{{}문법 을 사용 할 수 있 습 니 다.
    
    <template name="compoent">
    <view>   </view>
      <text>   </text>
      <text>{{name}}</text>
      <text>{{age}}</text>
    </template>
    <template is="compoent"/>
    <template is="compoent"/>
    <template is="compoent"/>
    <template is="compoent" data= "{{name: '  ', age:'123'}}" />
    
    wxml 가 져 오기 에는 두 가지 방법 이 있 습 니 다.
    import 가 져 오기:
    1:템 플 릿 가 져 오기
    2:재 귀적 가 져 올 수 없 는 것 이 특징 이다.
    include 도입:
    1:공 통 된 구성 요 소 를 파일 로 추출 합 니 다.
    특징:template/wxs 를 가 져 올 수 없습니다.재 귀적 가 져 올 수 있 습 니 다.
    wxs 모듈
    wxs 모듈 은 작은 프로그램의 스 크 립 트 언어 와 wxml 를 결합 하여 페이지 의 구 조 를 구축 할 수 있 습 니 다.
    wxs 와 자 바스 크 립 트 는 서로 다른 언어 로 자신의 문법 이 있 으 며 자 바스 크 립 트 와 일치 하지 않 습 니 다.근 데 거의 일치 해 요.
    wxml 에 서 는 Page/Component 에서 함 수 를 직접 호출 할 수 없습니다.
    그러나 어떤 경우,우 리 는 함수 로 wxml 의 데이터(Vue 와 유사 한 필터)를 처리 하고 싶 습 니 다.이 럴 때 wxs 를 사용 합 니 다.
    wxl 사용 제한 및 특징:
    WXS 의 실행 환경 과 다른 JavaScript 코드 는 격 리 되 어 있 으 며,wxs 에 서 는 다른 Javascript 파일 에서 정의 하 는 함 수 를 호출 할 수 없고,애플 릿 의 API 를 호출 할 수 없습니다.
    wxs 는 배열 의 함수 로 되 돌 릴 수 없습니다.
    운영 환경의 차이 로 인해 ios 장치 에 있 는 애플 릿 의 wxs 는 자바 스 크 립 트 보다 2~20 배 빠 르 고 안 드 로 이 드 장치 에 서 는 운영 효율 에 차이 가 없습니다.
    애플 릿 구성 요소 화 관련
    애플 릿 구성 요소 와 이 구성 요 소 를 호출 하 는 페이지 스타일 은 서로 영향 을 주지 않 습 니 다.
    구성 요 소 를 호출 하려 면 페이지 의 json 파일 에 구성 요소 이름과 경 로 를 추가 해 야 합 니 다.
    
    {
      "usingComponents": {
        "my-cut":"/pages/compent/my-cut"  }
    }
    
    페이지 와 구성 요소 간 의 스타일 이 서로 영향 을 미 칠 때 options 의 styleIsolation 속성 을 이용 할 수 있 습 니 다.
    구성 요소 의 js 파일 Component({})아래
    
      //        options  styleIsolation: "apply-shared"                  
      //        options  styleIsolation: "shared"                  
      Component({
    	options:{
        styleIsolation: "apply-shared"
      },
    })
    
    
    구성 요소 간 동적 전환 값 사용 properties 속성
    구성 요소 에 서 는 externalClasses 라 는 속성 을 이용 하여 css 스타일 을 동적 으로 설정 할 수 있 습 니 다.
    
    Component({
    properties: {
        // title: String
        title:{
          type: String,
          value:"     ",
          //       
          observer: function(newVal,oldVal){
            console.log(newVal,oldVal)
          }
        },
        
      },
        //                    css   
      externalClasses:["tltleclass"]
    
    })
    
    
    페이지 에서 속성 호출
    
    <my-cut title="  " tltleclass="red"></my-cut>
    <my-cut title="  " tltleclass="green" />
    <my-cut/>
    
    페이지 css 파일
    
    .red{
      color: red;
    }
    .green{
      color: green;
    }
    
    페이지 간 함수 호출
    페이지 에서 구성 요 소 를 사용 할 때,우 리 는 때때로 구성 요소 의 데 이 터 를 수정 해 야 한다.이것 은 우리 가 페이지 의 js 파일 에서 구성 요소 의 data 로 호출 해 야 한다.
    애플 릿 에 selectComponent('class/\#xxx')가 구성 요소 대상 을 가 져 올 수 있 습 니 다.
    구성 요소 wxml
    
    <view class="contention">
      <block wx:for="{{titled}}" wx:key="index">
        <view class="tit"> <text class="intext {{index == increat? 'active' : ''}}" data-count="{{index}}" bindtap="targetTap">{{item}}</text> </view>
      </block>
    </view>
    
    구성 요소 js
    
    methods: {
        targetTap(e){
          const index  = e.currentTarget.dataset.count
          this.setData({
            increat:index
          })
            this.triggerEvent("targetCount" , {})
        },
        amend(){
          this.setData({
            titled: ["  ", "  ", "  "]
          })
        }
    
      }
    
    페이지 wxml
    
    <switch titled="{{list}}" bind:targetCount="targetCount" class="sw-class"></switch>
    
    페이지 js
    
      targetCount(){
      //      
        const content = this.selectComponent('.sw-class') 
        console.log(content)
        // content.setData({
        //   titled:["  ", "  ", "  "]
        // })
        //                      ,        methods          ,       
        content.amend()
      },
    
    애플 릿 구성 요소 슬롯 사용
    싱글 슬롯
    구성 요소 wxml
    
    <view>
            
    </view>
    <slot></slot>
    <view>
            
    </view>
    
    페이지 wxml 사용
    
    <my-slot>
    <button size="mini">   </button>
    </my-slot>
    <my-slot>
     <image src="https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fimg2.woyaogexing.com%2F2021%2F04%2F26%2F1b402c98095d452486508b8250b21f3f%21360x640.jpeg&refer=http%3A%2F%2Fimg2.woyaogexing.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=jpeg?sec=1625711145&t=d9d310d5e9c878a9d4b7bc7057f2b754"/>
    </my-slot>
    <my-slot>
      <slider value="20"></slider>
    </my-slot>
    
    다 중 슬롯 사용
    모든 슬롯 에 이름 을 지어 야 합 니 다 name 속성 을 사용 합 니 다.
    component 대상 아래 options 대상 아래 multipleSolts 속성 을 true 로 설정 해 야 합 니 다.
    구성 요소 wxml
    
    <view>        </view>
    <view> <slot name="slot1" ></slot> </view>
    <view> <slot name="slot2" ></slot> </view>
    <view> <slot name="slot3" ></slot> </view>
    <view>        </view>
    
    구성 요소 js 파일
    
    Component({
      /**
       *        
       */
      options:{
        multipleSlots:true
      }
      )}
    
    페이지 사용
    
    <!--        -->
    <!--     :
                 
       component     options     multipleSolts     true -->
    <my-mslot>
    <button slot="slot3">415461</button>
    <slider slot="slot1" value="20"></slider>
    <text slot="slot2">     </text>
    </my-mslot>
    
    애플 릿 구성 요소 의 Component 구조 기 는 그런 역할 을 합 니 다.
    1 properties 사용자 가 구성 요소 에 데 이 터 를 전송 할 수 있 도록 합 니 다.
    
    properties:{ 
    	title: string,
    	content:{
    	type: array,
    	value:[1,2.3],
    	observer:function(newVal,oldVal){
            console.log(newVal,oldVal)
          }
    	}
    }
    
    2.data 는 일부 구성 요소 의 초기 화 데 이 터 를 정의 합 니 다.
    
    data:{
    	counter:0
    }	
    
    3 methods 는 구성 요소 내부 의 함 수 를 정의 하 는 데 사 용 됩 니 다.
    
    methods:{
    foo(){
    	
    }
    }
    
    4 options 정의 구성 요소 설정 옵션
    
    options:{
    //            true
    	multipleSlots:true,
    	//         
    	styleIsolation: "apply-shared", //                
       //styleIsolation: "shared"                  
    }
    
    5 externalClasses 외부 전송 추가 스타일 정의
    
    externalClasses:["on","tre"]
    
    6 observer 는 properties/data 의 변 화 를 감청 할 수 있 습 니 다.
    
    observers:{
    	counter: function(newVal){
    		console.log(newVal)
    	}
    }
    
    7 감청 이 있 는 페이지 의 생명주기
    구성 요소 js 파일
    
      pageLifetimes:{
        show(){
          console.log("             ")
        },
        hide(){
          console.log("               ")
        },
        resize(){
          console.log("         ")
        }
      }
    
    감청 모듈 내 생명주기
    
    lifetimes:{
        created(){
          console.log("     ")
        },
        attached(){
          console.log("         ")
        },
        ready(){
          console.log("       ")
        },
        moved(){
          console.log("               ")
        },
        detached(){
          console.log("  ")
        }
      }
    
    애플 릿 네트워크 요청
    
    onReady: function () {
        wx.request({
          url: 'http://httpbin.org/post',
          method:'post',
          data:{
            name:"wangshuai",
            age:19
          },
          success:function(res){
              console.log(res)
          }
        })
      },
    

    비교적 관건 적 인 몇 가지 속성
    url:필수데이터:요청 파라미터method:요청 하 는 방식
  • success:성공 시의 반전
  • 실패 시 반전일반적인 상황 에서 네트워크 요청 과 wx.request 의 결합 도 를 낮 추기 위해 Promise 방법 으로 리 셋 결 과 를 얻 습 니 다.
    promise 패키지 사용 하기
    
    export default function request(option) {
        return new Promise( (resolve, reject) => {
          wx.request({
            url: option.url,
            method: option.method || 'get',
            data: option.data || {},
            success: function (res) {
                resolve(res)
            },
            fail: function (res) {
              reject(res)
            }
          })
        })
    }
    
    페이지 호출
    
     onReady: function () {
        //         
        // wx.request({
        //   url: 'http://httpbin.org/post',
        //   method:'post',
        //   data:{
        //     name:"wangshuai",
        //     age:19
        //   },
        //   success:function(res){
        //       console.log(res)
        //   }
        // })
        request({url: 'http://httpbin.org/post',method:"post"}).then(res=>{
          console.log(res)
        }).catch(err =>{
          console.log(err)
        })
      },
    
    애플 릿 의 팝 업 창 표시
    페이지 wxml
    
    <button size="mini" bindtap="showToast">showToast</button>
    <button size="mini" bindtap="showModal">showModal</button>
    <button size="mini" bindtap="showLoading">showLoading</button>
    <button size="mini" bindtap="showAction">showAction</button>
    <button size="mini" open-type="share">  </button>
    
    페이지 js 파일
    
    Page({
    	showToast(){
        wx.showToast({
          title: '  showToast',
        })
      },
      showModal(){
        wx.showModal({
          title:'    ',
          cancelColor: 'cancelColor',
          success:function (params) {
              console.log(params)
              if (params.cancel) {
                  console.log("       ")
              } 
          } 
        })
      },
      showLoading(){
        wx.showLoading({
          title: '   ',
          mask: true //     ,      
        })
        setTimeout(()=>{
          wx.hideLoading({
            success: (res) => {},
          })
        },1500)
      },
      showAction(){
        wx.showActionSheet({
          itemList: ['  ','  '],
        })
      }
    })
    
    애플 릿 페이지 공유
    작은 프로그램의 공유 방식 은 두 가지 가 있 습 니 다.하 나 는 단 추 를 누 르 면 공유 하 는 것 이 고,다른 하 나 는 오른쪽 상단 의 메뉴 옵션 을 누 르 면 공 유 를 선택 하 는 것 입 니 다.
    저희 가 애플 릿 을 공유 할 때 는 onShare AppMessage 를 통 해 공유 정 보 를 보 여 드 려 야 합 니 다.
    사용자 가 페이지 내 퍼 가기 단추(button 구성 요소 open-type="share")나 오른쪽 상단 메뉴 인"퍼 가기"단 추 를 누 르 는 행 위 를 감청 하고 퍼 가기 내용 을 사용자 정의 합 니 다.

    메모:이 이벤트 처리 함 수 를 정의 해야만 오른쪽 상단 메뉴 에'전송'단 추 를 표시 할 수 있 습 니 다
    이 이벤트 처리 함 수 는 return Object 가 필요 합 니 다.퍼 가기 내용 을 사용자 정의 할 때 다음 과 같이 되 돌려 줍 니 다.

    애플 릿 점프
    navigator 태그
    navigator 점프 사용 url.
    
    <navigator url="/pages/home/home">  home</navigator>
    
    점프 속성 open-type 은 다음 과 같은 값 이 있 습 니 다.
    redirect:현재 페이지 를 닫 고 응용 프로그램의 한 페이지 로 이동 합 니 다.그러나 tabBer 페이지 로 넘 어 갈 수 없고 돌아 갈 수 없습니다.
    switch Tab:tabber 페이지 로 이동 하고 다른 비 tabber 페이지 를 닫 습 니 다(tabber 에서 정의 해 야 합 니 다)
    reLaunch:모든 페이지 를 닫 고 특정한 페이지 를 엽 니 다.(특정한 페이지 를 직접 보 여 줍 니 다.빈 체 는 tabBer 페이지 로 이동 할 수 있 습 니 다)
    
    <navigator url="/pages/home/home">  home</navigator>
    <navigator url="/pages/home/home" open-type="redirect">  home(redirect)</navigator>
    <navigator url="/pages/home/home" open-type="reLaunch">  home(reLaunch)</navigator>
    <navigator url="/pages/home/home" open-type="switchTab">  home(switchTab)</navigator>
    
    총결산
    이 작은 프로그램의 기본 사용 에 관 한 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 작은 프로그램의 기본 사용 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기