WeChat Mini 프로그램 기본 소개

巴扎黑
풀어 주다: 2017-09-12 09:23:48
원래의
1877명이 탐색했습니다.

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

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

작은 프로그램 개발에 대해 다음 방향으로 알아봅시다.

1. 개발 도구

2. JS 차이점

4.

미니 프로그램에 의해 초기화된 디렉토리를 먼저 살펴보세요.

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

1. 개발 도구




WeChat 'WeChat 개발자 도구'가 제공되며, 미니 프로그램 공식 홈페이지(https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t)에서 직접 다운로드할 수 있습니다. =20161107).

WeChat 개발자 도구는 개발 및 디버깅, 코드 편집 및 프로그램 릴리스를 통합합니다. 도구 자체에 대해서는 별로 소개할 것이 없지만, 한동안 사용해 본 결과, 코드 편집 습관에 있어서는 sublime text3와 비교적 유사한 것으로 추정됩니다. 내장되어 있으므로 비교적 쉽게 시작할 수 있습니다. 한 가지 주의할 점은 WeChat 개발자 도구를 사용할 때 "컴파일" 기능을 사용하는 데 익숙해져야 한다는 것입니다. 일부 사람들은 편집기의 특정 위치를 수정했지만 페이지는 변경되지 않은 것을 접하게 됩니다. time은 실제로 한 번만 다시 컴파일하면 제대로 해결됩니다. 동시에 이상한 문제가 발생하면 캐시를 지우고 싶을 수도 있으며 예상치 못한 결과를 얻을 수도 있습니다.

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>
로그인 후 복사

우리는 단지 필요합니다 아이콘 구성 요소를 사용하려면 갈 필요가 없습니다. 스타일을 직접 설정하여 해당 아이콘 스타일을 얻을 수 있습니다.

일상적인 소규모 프로그램 개발에서 가장 일반적으로 사용되는 구성 요소는 뷰입니다. , view p와 비슷합니다. 그러면 레이아웃 중에 뷰가 어디에나 있다는 것을 알 수 있습니다~, 아래 그림과 같습니다.


이런 방식의 뷰는 아닙니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿