>  기사  >  위챗 애플릿  >  WeChat Mini 프로그램 시작하기 튜토리얼

WeChat Mini 프로그램 시작하기 튜토리얼

巴扎黑
巴扎黑원래의
2017-04-01 15:50:221785검색

이 기사는 주로 WeChat 애플릿의 입문 튜토리얼을 소개합니다. 관심 있는 친구들이 참고할 수 있도록 공유하겠습니다.

WeChat 미니 프로그램(이하 미니 프로그램)은 최근 몇 달 동안 우리 프로그래머들의 범위를 폭발시켰습니다. 수많은 프로그래머들이 칼을 갈고 이 빠른 케이크에 세상을 개척할 준비를 하고 있다고 할 수 있습니다. . 그렇다면 프론트엔드 개발자로서 소규모 프로그램 개발과 일반적인 개발의 차이점은 무엇입니까? 문 안으로 들어가 살펴보겠습니다.

작은 프로그램 개발에 대해 다음과 같은 방향으로 알아보겠습니다.

1. 개발 도구

2. >

3.JS 차이점


4. 기타

서문

첫번째 Directory 살펴보기 미니 프로그램 초기화:


미니 프로그램에는 전체 프로그램을 설명하는 앱과 해당 페이지를 설명하는 여러 페이지가 포함되어 있습니다. 미니 프로그램의 주요 부분은 다음과 같이 프로젝트의 루트 디렉터리에 배치되어야 하는 세 개의 파일로 구성됩니다. 미니 프로그램 페이지는 다음과 같은 네 개의 파일로 구성됩니다. js, wxml, wxss, json.
자세한 내용은 포털을 클릭하세요.-->https://mp.weixin.qq.com/debug/wxadoc/dev/framework/structure.html?t=20161107

1. 개발 도구

위챗에서는 '위챗 개발자 도구'를 제공하고 있으며, 위챗 미니 프로그램 공식 홈페이지(https://mp.weixin. qq.com/debug/wxadoc/dev/devtools/download.html?t=20161107).

WeChat 개발자 도구는 개발 및 디버깅, 코드 편집, 프로그램 릴리스를 통합합니다. 도구 자체에 대해서는 별로 소개할 것이 없지만, 한동안 사용해 본 결과, 코드 편집 습관에 있어서는 sublime text3와 비교적 유사한 것으로 추정됩니다. 내장되어 있으므로 비교적 쉽게 시작할 수 있습니다.


한 가지 주의할 점은 WeChat 개발자 도구를 사용할 때 "컴파일" 기능을 사용하는 데 익숙해져야 한다는 것입니다. 어떤 사람들은 편집기에서 특정 부분을 수정한 것을 접할 수도 있지만, 현재로서는 페이지가 변경되지 않았으므로 한 번만 다시 컴파일하면 제대로 해결됩니다. 동시에 이상한 문제가 발생하면 캐시를 지우고 싶을 수도 있으며 예상치 못한 결과를 얻을 수도 있습니다.

2. 레이아웃 차이

1. 태그

미니 프로그램의 태그는 p, p,span 및 가장 큰 차이점은 이러한 친숙한 레이블이 미니 프로그램에서 완전히 취소되었다는 것입니다. 교체된 레이블은 뷰 컨테이너, 기본 콘텐츠, 양식 구성 요소, 작업 피드백(폐기 및 변경 예정)입니다. API), 탐색, 8개 카테고리: 미디어 구성요소, 맵, 캔버스. (포털: https://mp.weixin.qq.com/debug/wxadoc/dev/comComponent/?t=20161107)


뷰 등 컴포넌트 사용법은 라벨과 동일합니다. 컴포넌트뷰>, 텍스트 컴포넌트뷰>. 작성 방법은 라벨 작성 방법과 크게 다르지 않은 것 같지만, 이들 컴포넌트와 라벨의 가장 큰 차이점은 아이콘 컴포넌트와 같이 컴포넌트 자체에 스타일이 있다는 점입니다:



 <view class="group">
 <block wx:for="{{iconSize}}">
  <icon type="success" size="{{item}}"></icon>
 </block>
</view>

아이콘 컴포넌트만 사용하면 스타일을 직접 설정하지 않고도 해당 아이콘 스타일을 얻을 수 있습니다.

일일 소규모 프로그램 개발에서 가장 일반적으로 사용되는 구성 요소는보기 자체는 많은 기본 스타일이 없습니다 스타일. 내 생각에,보기는 p와 유사하므로, 우리는 그것을 p로 사용할 수 있습니다. >

View는 어디에나 있습니다. 이 작성 방법은 HTML처럼 의미와 SEO를 고려할 필요가 없습니다. 매우 간단하고 투박합니다~.


텍스트 컴포넌트에 대한 추가 언급입니다. 텍스트에는 뷰에 없는 기능이 있는데, 바로 텍스트 컴포넌트에 있는 텍스트를 복사, 복사, 복사할 수 있다는 것입니다(중요한 것은 세 번 말해야 합니다~ ). 특정 텍스트 부분을 복사하려면 텍스트 구성 요소만 사용할 수 있습니다. 동시에 주목해야 할 점은 뷰 구성 요소가 텍스트 구성 요소 내에 중첩될 수 없다는 것입니다! 중첩이 잘못되었습니다!

2. 스타일

html 태그가 많이 변경되었다면 CSS에는 거의 변경 사항이 없으므로 모바일 웹페이지를 재구성할 수 있습니다. 미니 프로그램에서 매우 빠르게 실행됩니다(스타일을 복사하기만 하면 됩니다). 하지만 우리가 주의해야 할 몇 가지 문제가 있습니다:

1. 미니 프로그램은 새로운 단위 rpx를 도입합니다. 이는 화면 너비에 따라 조정될 수 있습니다. 지정된 화면 너비는 750rpx입니다. 예를 들어 iPhone6의 화면 너비는 375px이고 총 750개의 물리적 픽셀이 있으며, 750rpx = 375px = 750개의 물리적 픽셀, 1rpx = 0.5px = 1개의 물리적 픽셀입니다.

2. Less, sass 등의 작성방법은 지원하지 않습니다

3.不支持不支持级联选择器,例如: .test:nth-child(2)、.test:last-child等 

4.支持::before和::after

注:想了解更多请戳-->https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxss.html?t=20161107

二、JS差异

虽然小程序的交互采用的是js的语法,但是最大的变化就在于小程序无法使用选择器获取到页面的某个'dom'(应该不叫dom),这也是我们前端人员需要思路转变的地方,以往我们习惯于获取某个dom,然后这个dom上绑定各种事件,同时对页面进行一些改变操作,但是小程序并没有提供这种我们习惯的方法。 

不能获取dom,也不能直接操作dom,那我们该怎么写呢?

1. bind 和 catch

bind和catch的作用从字面意思就可以大致猜出是用来绑定某些东西的,没错,这是小程序提供绑定事件的两个方法,而他们的区别在于bind不阻止冒泡,而catch阻止冒泡。小程序不提供获取dom的操作,而是让我们直接将事件绑定写入到组件内,如下代码:


<view id="tapTest" data-hi="WeChat" bindtap="tapName"> Click me! </view>

看到这大家可能发现了bind后面跟着一个tap,这个tap是什么东东?

2. tap

tap其实就是一个事件,你可以理解为click,不过在手机端叫做tap,其它的事件还有:touchstart、touchmove、touchcancel、touchend、longtap。

bindtap=”tapName”组合起来就是绑定个tap事件,tapName则是对应的方法名,在这里需要注意一点,调用方法时不能够使用tapName(“txt”)这种形式来传参,小程序不支持。那么如果我们想要给方法传递一些参数该怎么做呢?接着往下看。

3.event

我们先看一段代码:


Page({
 tapName: function(event) {
  console.log(event)
 }
})

打印出来的结果:


{
"type":"tap",
"timeStamp":895,
"target": {
 "id": "tapTest",
 "dataset": {
  "hi":"WeChat"
 }
},
"currentTarget": {
 "id": "tapTest",
 "dataset": {
  "hi":"WeChat"
 }
},
"detail": {
 "x":53,
 "y":14
},
"touches":[{
 "identifier":0,
 "pageX":53,
 "pageY":14,
 "clientX":53,
 "clientY":14
}],
"changedTouches":[{
 "identifier":0,
 "pageX":53,
 "pageY":14,
 "clientX":53,
 "clientY":14
}]
}

看到这么一堆东西大家可能有点晕,没事,我们来捋一捋。这个event想来大家应该明白是什么,event包含了目标对象的相关信息。那意味着,我们只要去修改目标对象的相关信息,就可以给tapName方法传输参数了。 

那么如何修改目标对象的相关信息呢?在这之前我们必须要先了解下currentTarget和target两个属性,前者是绑定事件的组件,后者是触发事件的组件源。理解清楚这两个属性很重要!如果是上面例子这种情况,只有一个view组件,那么这两个属性的值没什么区别,但是如果换成下面的这个例子,就不一样了:


<view id="tap1" data-hi="绑定组件" bindtap="tapName">
  <view id="tap2" data-hi="触发组件源"></view>
</view>

我们再输出看看(为了方便对比,只保留下currentTarget和target两个属性):


{
 "target": {
  "id": "tap2",
  "dataset": {
   "hi":"触发组件源"
  }
 },
 "currentTarget": {
  "id": "tap1",
  "dataset": {
   "hi":"绑定组件"
  }
 }
}

通过这个例子就可以很清楚的发现,currentTarget对应的就是外层绑定了tapName方法的view组件,而target对应的则是内部的view组件。 

通过两个例子,相信大家也注意到了两个属性,data-hi和dataset,这两个属性有什么关系呢?大家应该猜到了,dataset的值其实就是我们设置的data-xxx的值,而xxx则是dataset里面的key。大家对于data-xxx的写法应该不陌生,就是html中常见的自定义属性的写法,而在小程序中,则被用来传参。

4. 改变样式

前面就提到了小程序并不提供获取和操作dom的能力,这就又带来了一个问题,我们如何去动态的改变样式呢?我们先看下例子:


<view class="container" style="overflow: {{screenType?&#39;hidden&#39;:&#39;scroll-y&#39;}}" bindtap="bindType">
Page({
 data: {
  screenType: &#39;&#39;
 },
 bindType: function(){
  this.setData({
    screenType: &#39;1&#39;
  })
 }
 })</view>

 大家是不是有点明白了呢,我们没有办法直接获取dom然后去改变他的样式,所以我们只能通过data里的属性来控制样式的变化,如上面的代码,overflow的值取决于screenType的值是否存在,如果存在,则overflow: hidden,反之overflow: scroll-y;那么我们只需要改变screenType的值。要改变screenType的值也简单了,小程序提供了this.setData方法,可以设置data内的值。

四、其它

最后提一下我们熟悉的ajax请求,在小程序里,它不叫ajax,而叫做wx.request。用法和ajax没什么区别,唯一需要特别注意的是,请求必须是https请求!而不是平常的http请求!除了必须要是https请求以外,还需要到小程序的后台里设置合法域名,否则无法请求。

위 내용은 WeChat Mini 프로그램 시작하기 튜토리얼의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.