위 챗 애플 릿 개발
2. 애플 릿 개발 자 계 정 찾기
3. 애플 릿 만 들 기
빈 디 렉 터 리
4. 애플 릿 의 디 렉 터 리 구조 파악
pages --- 경로
index
index.js --- js
index.json ---
index.wxml ---
index.wxss ---
utils --- 모듈
app. js --- 전역 js 파일
app. json - 전역 프로필
app. wxss -- 전역 스타일 파일
procject. config. json 프로젝트 프로필
sitemap. json 애플 릿 검색 설정
5. 애플 릿 설정 파일
5.1 전역 설정 --- app. json
위 챗 애플 릿 을 전역 적 으로 설정 하고 페이지 파일 의 경로, 창 표현, 네트워크 시간 초과 설정, 다 중 tab 설정 등 을 결정 합 니 다.https://developers.weixin.qq.com/miniprogram/dev/framework/config.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE
애플 릿 의 시작 페이지 는 pages 옵션 의 첫 번 째 페이지 입 니 다.
{
//
"pages": [ // ,
"pages/index/index",
"pages/logs/logs"
],
//
"window": {
"backgroundTextStyle": "light", //
"navigationBarBackgroundColor": "#fff", //
"navigationBarTitleText": "WeChat", //
"navigationBarTextStyle": "white" // black / white
},
"style": "v2",
"sitemapLocation": "sitemap.json"
}
5.2 페이지 설정 --- pages / page / page. json
모든 애플 릿 페이지 는. json 파일 을 사용 하여 이 페이지 의 창 표현 을 설정 할 수 있 습 니 다.페이지 의 설정 항목 은 현재 페이지 에서 app. json 의 window 에서 같은 설정 항목 을 덮어 씁 니 다.
https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html
pages/index/index.json
{
"navigationBarBackgroundColor": "#f66",
"navigationBarTitleText": " ",
"enablePullDownRefresh": true,
"backgroundColor": "#00f",
"usingComponents": {}
}
6. 작은 프로그램의 페이지 를 만 들 고 아래쪽 옵션 을 설정 합 니 다.
6.1 페이지 만 들 기
app. json 전역 프로필 의 pages 옵션 을 편집 하면 각 페이지 가 자동 으로 생 성 됩 니 다.
"pages": [
"pages/home/home",
"pages/kind/kind",
"pages/cart/cart",
"pages/user/user",
"pages/index/index",
"pages/logs/logs"
],
6.2 아래쪽 옵션 설정
app. json 파일 에 tabBar 옵션 추가 (아래쪽 tab 표시 줄 표현)
https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/app.html#tabBar
"tabBar": {
"color": "#333",
"selectedColor": "#f66",
"backgroundColor": "#fff",
"borderStyle": "black", //
"position": "top", // ,
"list": [
{
"text": " ",
"pagePath": "pages/home/home",
"iconPath": "/resources/tabs/home.png", //
"selectedIconPath": "/resources/tabs/home_active.png"
},
{
"text": " ",
"pagePath": "pages/kind/kind",
"iconPath": "/resources/tabs/kind.png",
"selectedIconPath": "/resources/tabs/kind_active.png"
},
{
"text": " ",
"pagePath": "pages/cart/cart",
"iconPath": "/resources/tabs/cart.png",
"selectedIconPath": "/resources/tabs/cart_active.png"
},
{
"text": " ",
"pagePath": "pages/user/user",
"iconPath": "/resources/tabs/user.png",
"selectedIconPath": "/resources/tabs/user_active.png"
}
]
},
7. 첫 페이지 에 윤 방도 추가
애플 릿 이 제공 하 는 기본 구성 요소
https://developers.weixin.qq.com/miniprogram/dev/component/
8. 작은 프로그램의 wxml 문법
8.1 초기 화 된 상태
// home.js
data: {
msg: "hello ",
list: ['a', 'b', 'c', 'd'],
flag: false
}
// home.wxml
{{ msg }}
{{ item }}
{{ itm }}
작은 프로그램의 목록 렌 더 링, 기본 옵션 은 item, 기본 색인 값 은 index 입 니 다. 변경 이 필요 하 다 면 wx: for - item 과 wx: for - index 를 통 해 수정 할 수 있 습 니 다.
작은 프로그램의 조건 판단, wx: if wx: elif wx: else hidden
8.2 템 플 릿
// wxml
{{index}}: {{msg}}
Time: {{time}}
// js
data : {
item: {
index: 0,
msg: 'this is a template',
time: '2016-09-15'
},
item1: {
index: 0,
msg: 'this is a template',
time: '2016-10-15'
},
item2: {
index: 0,
msg: 'this is a template',
time: '2016-11-15'
},
}
8.3
- import
// md.wxml
{{index}}: {{msg}}
Time: {{time}}
// home.wxml
- include
wxs
9、
9.1 App ---- app.js
https://developers.weixin.qq.com/miniprogram/dev/reference/api/App.html
onLaunch function —— 。
onShow function —— 。
onHide function —— 。
onError function 。
onPageNotFound function 。
any Object , this
getApp() App 。
app.js
// app.js
globalData: {
userInfo: null,
title: ' '
},
state: {
test: '1'
}
// home.js
let app = getApp()
console.log(app.globalData.title)
console.log(app.state.test)
app.state.test = 2
console.log(app.state.test)
9.2 페이지 페이지 페이지 - 수명 주기
속성 유형 기본 값 필수 설명
data Object 페이지 의 초기 데이터
onLoad function 라 이 프 사이클 리 셋 - 감청 페이지 로 딩 - ajax 요청
onShow function 수명 주기 리 셋 - 감청 페이지 표시 --- vue activated
onReady function 라 이 프 사이클 리 셋 - 감청 페이지 첫 렌 더 링 완료
onHide function 라 이 프 사이클 리 셋 - 감청 페이지 숨 기기 - vue deactivated
onUnload function 수명 주기 리 셋 - 감청 페이지 마 운 트 해제
onPullDownRefresh function 사용자 드 롭 다운 동작 감청 - page. json 에서 드 롭 다운 새로 고침 을 켜 야 합 니 다.
onReach Bottom function 페이지 에서 바닥 이벤트 처리 함수
onShareAppMessage function 사용자 가 오른쪽 상단 을 클릭 하여 전송
onPageScroll function 페이지 스크롤 트리거 이벤트 처리 함수
onResize function 페이지 크기 가 바 뀌 었 을 때 터치 합 니 다. 자세 한 내용 은 응답 표시 영역 변화 참조
onTabItemTap function 이 현재 tab 페이지 일 때 tab 를 클릭 하면 터치 합 니 다
다른 any 개발 자 는 임의의 함수 나 데 이 터 를 Object 인자 에 추가 할 수 있 으 며, 페이지 의 함수 에서 this 로 접근 할 수 있 습 니 다.
getCurrent Pages () 현재 페이지 가 져 오기
10. 라 이 프 사이클 갈고리 에서 요청 한 데이터
작은 프로그램의 데이터 요청 은 wx. request () 함 수 를 사용 해 야 하고 인 터 페 이 스 는 https 프로 토 콜 이 어야 하 며 작은 프로그램의 안전 도 메 인 이름 은 설정 해 야 합 니 다.
그러나 개발 할 때 도 메 인 이름 을 요청 하 는 설정 정 보 를 무시 할 수 있 습 니 다. - > 로 컬 설정 - > 합 법 적 인 도 메 인 이름 을 검사 하지 않 습 니 다. 프로젝트 가 실 행 될 때 제거 하 는 것 을 기억 하 십시오.
10.1 패 키 징 데이터 요청 방법 utils / request. js
https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html let baseUrl = "http://47.92.152.70";
export default {
fetch (url, data, method) {
data = data || {}
method = method || 'get'
return new Promise(resolve => {
// https://developers.weixin.qq.com/miniprogram/dev/api/network/request/wx.request.html
wx.request({
url: baseUrl + url,
data,
method,
success: (res) => {
resolve(res.data)
}
})
})
}
}
10.2 페이지 호출 데이터 요청 --- onLoad ()// home.js
import request from './../../utils/request.js'
onLoad: function (options) {
request.fetch('/banner').then(data => {
console.log(data)
//
this.setData({
bannerlist: data.data
})
})
},
11. 리스트 구성 요소
11.1 구성 요소 생 성 / prolist / prolist// prolist.wxml
// prolist.wxss
/* components/prolist/prolist.wxss */
.prolist .item{
display: flex;
height: 100px;
border-bottom: 1px solid #ccc;
}
.prolist .item .itemimg {
width: 90px;
height: 90px;
background: #f66;
margin: 5px;
}
.prolist .item .iteminfo {
flex: 1;
}
11.2 구성 요소 - vue 등록 및 사용 등록 구성 요소 --- - 어디서 구성 요 소 를 사용 해 야 하 는 지. json 에 등록 // home.json
{
"navigationBarTitleText": " ",
"usingComponents": {
"prolist": "/components/prolist/prolist"
}
}
구성 요소 사용
12. 구성 요소 간 전송 값
https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html
12.1 부모 구성 요소 데이터 가 져 오기// home.js
data: {
bannerlist: [],
prolist: []
},
onLoad: function (options) {
request.fetch('/banner').then(data => {
console.log(data)
//
this.setData({
bannerlist: data.data
})
})
request.fetch('/pro').then(data => {
console.log(data)
//
this.setData({
prolist: data.data
})
})
},
12.2 부모 구성 요소 가 하위 구성 요소 에 값 을 전달 합 니 다.
부모 구성 요소 가 하위 구성 요 소 를 호출 할 때 사용자 정의 속성 을 추가 합 니 다. 속성의 값 은 하위 구성 요소 에 전달 해 야 하 는 값 입 니 다. 전달 하 는 값 이 변수 이거 나 number 형식 이나 boolean 형식의 데 이 터 를 사용 하려 면 {{}}} 이 필요 합 니 다.
하위 구성 요소 가 정의 하 는 곳 에 properties 가 있 습 니 다. 사용자 정의 속성 에 데이터 형식 을 추가 하면 하위 구성 요소 에서 부모 구성 요소 사용자 정의 속성 을 직접 사용 하여 구성 요 소 를 렌 더 링 할 수 있 습 니 다.// prolist.js
properties: {
prolist: Array
},
// prolist.wxml
{{item.proname}}
12.3 하위 구성 요소 가 부모 구성 요소 에 값 을 전달 합 니 다.
부모 구성 요 소 는 하위 구성 요 소 를 호출 하 는 곳 에서 사용자 정의 이 벤트 를 연결 합 니 다. 이벤트 의 실행 은 부모 구성 요소 가 정의 합 니 다. 부모 구성 요 소 는 이벤트. detail 을 통 해 데 이 터 를 받 습 니 다.
//
getData (event) {
console.log(event.detail.item.proname)
},
하위 구성 요소 에서 필요 한 이벤트 내부 에서 this. triggerEvent 를 통 해 사용자 정의 이 벤트 를 촉발 하고 매개 변 수 를 전달 합 니 다. 매개 변 수 는 대상 입 니 다.
methods: {
sendData (event) {
console.log(event.target.dataset)
this.triggerEvent('myevent', event.target.dataset)
}
}
13. 클릭 하여 제품 에 들 어 가 는 상세 한 상황
성명 식 점프 + 프로 그래 밍 식 점프
13.1 사 운 드 점프
https://developers.weixin.qq.com/miniprogram/dev/component/navigator.html
open - type 값 설명 최저 버 전 navigate 대응 wx. navigateTo 또는 wx. navigateToMiniProgram 기능 --- push
redirect 대응 wx. redirecto 기능 --- replace
switchTab 대응 wx. switchTab 기능 --- 아래쪽 옵션 페이지 전환
reLaunch 대응 wx. reLaunch 기능 1.1.0
navigate Back 대응 wx. navigate Back 기능 1.1.0 --- back
exit 애플 릿 종료, target = "miniProgram" 시 2.1.0 적용
// prolist.wxml
{{item.proname}}
값 을 전하 다
자세 한 페이지 수신 매개 변수 onLoad options 가 매개 변수 입 니 다.// detail.js
data: {
proname:''
},
/**
* --
*/
onLoad: function (options) {
console.log(options)
const { proid } = options;
request.fetch('/pro/detail?proid=' + proid).then(data => {
console.log(data.data)
this.setData({
proname: data.data.proname
})
})
},
{{proname}}
13.2 프로 그래 밍 점프
https://developers.weixin.qq.com/miniprogram/dev/api/route/wx.switchTab.html wx. switchTab (Object object) 은 tabBar 페이지 로 이동 하고 다른 모든 비 tabBar 페이지 를 닫 습 니 다. wx. reLaunch (Object object) 모든 페이지 를 닫 고 응용 프로그램의 한 페이지 로 열기 wx. redirecto (Object object) 는 현재 페이지 를 닫 고 응용 프로그램의 한 페이지 로 이동 합 니 다.하지만 tabbar 페이지 로 넘 어 갈 수 없습니다. wx. navigateTo (Object object) 는 현재 페이지 를 유지 하고 응용 프로그램의 한 페이지 로 이동 합 니 다.하지만 tabbar 페이지 로 넘 어 갈 수 없습니다.wx. navigate Back 을 사용 하면 원래 페이지 로 돌아 갈 수 있 습 니 다.애플 릿 에서 페이지 스 택 최대 10 층 wx. navigate Back (Object object) 은 현재 페이지 를 닫 고 이전 페이지 나 다단 계 페이지 로 돌아 갑 니 다.getCurrentPages 를 통 해 현재 페이지 스 택 을 가 져 올 수 있 습 니 다. 몇 층 으로 돌아 가 야 할 지 결정 합 니 다
{{item.proname}}
methods: {
sendData (event) {
console.log(event.target.dataset)
this.triggerEvent('myevent', event.target.dataset)
},
toDetail (event) {
const { proid } = event.target.dataset;
wx.navigateTo({
url: '/pages/detail/detail?proid=' + proid
})
}
}
14. 끝!
https://developers.weixin.qq.com/miniprogram/dev/api/ui/scroll/wx.pageScrollTo.html
backtop () {
wx.pageScrollTo({
scrollTop: 0,
duration: 300
})
},
15 、 드 롭 다운 리 셋 상단 로드
페이지 설정 파일 에서 드 롭 다운 새로 고침 열기// home.json
{
"navigationBarTitleText": " ",
"enablePullDownRefresh": true,
"usingComponents": {
"prolist": "/components/prolist/prolist"
}
}
15.1 home. js 에서 업무 논 리 를 작성 합 니 다.data: {
pageCode: 1
},
/**
* --
*/
onPullDownRefresh: function () {
request.fetch('/pro').then(data => {
this.setData({
prolist: data.data,
pageCode: 1
})
})
},
/**
*
*/
onReachBottom: function () {
console.log(' ')
request.fetch('/pro?pageCode=' + this.data.pageCode).then(data => {
let pageCode = this.data.pageCode
pageCode++;
this.setData({
pageCode
})
if (data.data.length === 0) {
wx.showToast({
title: ' ',
duration: 2000
})
} else {
let prolist = this.data.prolist
this.setData({
prolist: [...prolist, ...data.data]
})
}
})
},
16. 사용자 의 정보 획득
개인 센터 를 클릭 하면 사용자 정 보 를 얻 을 수 있 습 니 다.
: {{username}}
data: {
username: ''
},
bindGetUserInfo(e) {
console.log(e.detail.userInfo)
wx.getSetting({
success:(res) =>{
if (res.authSetting['scope.userInfo']) {
wx.getUserInfo({
success: (res) => {
console.log(res.userInfo)
this.setData({
username: res.userInfo.nickName
})
}
})
}
}
})
},
17. 권한 이 부 여 된 권한 열기
openSeting () {
wx.openSetting({
success(res) {
console.log(res.authSetting)
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
}
})
},
18. 사용자 의 지리 적 위치 가 져 오기
https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.stopLocationUpdate.html
app. json 파일 인증"permission": {
"scope.userLocation": {
"desc": " "
}
}
19. 두상
https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.chooseImage.html
getImg () {
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success(res) {
// tempFilePath img src
const tempFilePaths = res.tempFilePaths
}
})
},
편집기 업로드 를 클릭 하고 애플 릿 배경 에서 스 캔 체험 코드 로 효 과 를 봅 니 다.
20. 첫 페이지 윤 방도 미리보기
https://developers.weixin.qq.com/miniprogram/dev/api/media/image/wx.previewImage.html
previewImage (event) {
console.log(event.target.dataset)
let arr = []
this.data.bannerlist.map(item => {
arr.push('http://47.92.152.70/' + item.img)
})
wx.previewImage({
current: event.target.dataset.current, // http
urls: arr // http
})
},
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.