위챗 애플릿 미니 프로그램 개발 Zhihu 예제 공유의 WeChat 미니 프로그램 버전

Zhihu 예제 공유의 WeChat 미니 프로그램 버전

Jan 25, 2018 pm 01:51 PM
공유하다 미니 프로그램

이 기사는 주로 Zhihu의 WeChat 미니 프로그램 버전을 처음부터 공유합니다. Zhihu의 WeChat 버전을 개발하고 더 많은 아이디어를 얻는 데 도움이 되기를 바랍니다.

디스플레이 효과(인터페이스 스타일 디자인 및 상호 작용은 iOS 4.8.0 버전 Zhihu 앱에서 따옴):

Zhihu 예제 공유의 WeChat 미니 프로그램 버전

동적 효과를 보려면 GitHub로 이동하세요.

1. 시작 전 준비

계정 신청: 미니 프로그램 등록 서류에 따라 정보를 입력하고 해당 자료를 제출하면 나만의 미니 프로그램 계정을 가질 수 있습니다.

개발 도구: WeChat 개발자 도구

데이터 출처:

Easy Mock: 데이터 시뮬레이션 결과물로 필요한 형식에 따라 반환 데이터를 작성할 수 있으며 모든 데이터는 무작위로 생성됩니다.

Mock.js: Easy Mock은 Mock.js를 도입하지만 문서에는 구문의 일부만 제공됩니다. 자신만의 모의 데이터를 보다 간결하게 작성하려면 Mock.js에서 더 구체적인 구문을 볼 수 있습니다.

2. 미니 프로그램 초기화

새 빈 폴더 만들기

WeChat 개발자 도구를 열고 "첫 번째 미니 프로그램" 문서의 단계를 따라 나만의 미니 프로그램을 만드세요.

디렉터리 구조

weChatApp
|___client
|	|___assets // 存储图片
|	|___pages  	// 页面
|	|	|___index // 首页
|   |	|___index.wxml  // 页面结构文件
|	|	|___index.wxss  // 样式表文件
|	|	|___index.js    // js文件
|	|___utils // 全局公共函数
|	|___app.js   // 系统的方法处理文件
|	|___app.json // 系统全局配置文件
|	|___app.wxss // 全局的样式表
|	|___config.json // 域名等配置文件
|___project.config.json
|___README
小程序配置文件app.json内容
{
// 页面路由
   "pages": [
       "pages/index/index",              // 首页
       "pages/findMore/findMore",        // 想法页(开始起名为发现页面,后来没改/(ㄒoㄒ)/~~)
       "pages/userCenter/userCenter",    // 更多(同上,原来起名为个人中心o(╯□╰)o)
       "pages/market/market",            // 市场
       "pages/searchResult/searchResult",// 搜索结果页
       "pages/message/message",          // 消息列表页
       "pages/titleDetail/titleDetail",  // 点击标题进入的问题详情页
       "pages/contentDetail/contentDetail"// 点击内容进入的回答详情页
   ],
   // 窗口
   "window": {
       "backgroundColor": "#FFF",       // 窗口的背景色  
       "backgroundTextStyle": "dark",   // 下拉背景字体、loading 图的样式,仅支持 dark/light
       "navigationBarBackgroundColor": "#FFF",// 顶部tab背景颜色
       "navigationBarTitleText": "知小乎", //顶部显示标题
       "navigationBarTextStyle": "black", // 导航栏标题颜色,仅支持 black/white
       "enablePullDownRefresh": true      // 是否开启下拉刷新
   },
   // tab导航条
   "tabBar": {
       "backgroundColor": "#fff",  // 背景颜色
"color": "#999",            // 默认文字颜色
       "selectedColor": "#1E8AE8", // 选中时文字颜色
       "borderStyle": "white",     // tabbar上边框的颜色, 仅支持 black/white
       
       /** 
       * tab列表,最少2个,最多5个
   * selectedIconPath: 选中时图片
   * iconPath: 默认图片
   * pagePath: 对应页面路由
   * text: 对应文案
   **/
       "list": [{
           "selectedIconPath": "assets/home-light.png",
           "iconPath": "assets/home.png",
           "pagePath": "pages/index/index",
           "text": "首页"
       }, {
           "selectedIconPath": "assets/find-light.png",
           "iconPath": "assets/find.png",
           "pagePath": "pages/findMore/findMore",
           "text": "想法"
       },
       {
         "selectedIconPath": "assets/market-light.png",
         "iconPath": "assets/market.png",
         "pagePath": "pages/market/market",
         "text": "市场"
       },
       {
         "selectedIconPath": "assets/msg-light.png",
         "iconPath": "assets/msg.png",
         "pagePath": "pages/message/message",
         "text": "消息"
       }, {
           "selectedIconPath": "assets/more-light.png",
           "iconPath": "assets/more.png",
           "pagePath": "pages/userCenter/userCenter",
           "text": "更多"
       }]
   }
}
로그인 후 복사

인터페이스 도메인 이름 구성: 인터페이스 데이터를 시뮬레이션하는 데 Easy Mock이 사용되므로 미니 프로그램 관리 백그라운드 개발 설정에서 요청 법적 도메인 이름을 https://www.easy-mock으로 구성할 수 있습니다. -서버 도메인 이름 .com.

3. 개발 중 발생한 문제 및 해결 방법

1. 미니 프로그램은 HTML 조각을 렌더링합니다.

Zhihu의 웹 버전을 읽은 후 인터페이스에서 반환된 답변 데이터는 HTML 코드 조각이므로 답변은 어떤 삽입물에도 있을 수 있습니다. 가능한 한 사진.
네 맞아요 아래 보라색이에요 (╯°□°)╯︵┻━┻

여러 번 시도한 끝에 기본 작성 방법이 HTML 코드 조각 렌더링을 지원하지 않는 것을 발견하여 포기했습니다 HTML 코드 조각을 반환하는 방법이므로 내 답변 목록에 그림(ಥ_ಥ)이 없습니다.

하지만 조사 중에 사용자 정의 구성 요소를 찾았습니다: wxParse-WeChat 애플릿 서식 있는 텍스트 구문 분석 구성 요소는 아직 시도하지 않았습니다.

2. 홈페이지 상단에서 탭 전환

구현 아이디어

클릭 가능한 각 탭을 별도로 data-index에 바인딩하고, 클릭한 탭의 인덱스 값을 가져옵니다. 가장 바깥쪽의 바인드탭 바인딩 방식으로, 그리고 인덱스를 기준으로 값은 각각 해당 탭 내용을 표시합니다

<view class="tab-wrapper" bindtap="setActive">
        <view class="tab-item {{isActive == 0 ? &#39;tab-item-active&#39; : &#39;&#39;}}" data-index="0">关注</view>
        <view class="tab-item {{isActive == 1 ? &#39;tab-item-active&#39; : &#39;&#39;}}" data-index="1">推荐</view>
        <view class="tab-item {{isActive == 2 ? &#39;tab-item-active&#39; : &#39;&#39;}}" data-index="2">热榜</view>
        <view class="tab-item-line" animation="{{animationData}}"></view>
</view>
<view class="tab-content {{isActive == 0 ? &#39;show&#39; : &#39;hide&#39;}}">
 // ...
</view>
<view class="tab-content {{isActive == 1 ? &#39;show&#39; : &#39;hide&#39;}}">
 // ...
</view>
<view class="tab-content {{isActive == 2 ? &#39;show&#39; : &#39;hide&#39;}}">
 // ...
</view>
로그인 후 복사

3, 풀업 로딩 및 풀다운 새로고침

구현 아이디어

풀업 로딩: 으으으으음 ...제가 말하는 풀업 로딩은 바닥이 나온 후의 로딩입니다. 죄송하지만 모두가 이해하는 것과 다릅니다 o(╯□╰)o

기본 방법: onReachBottom, 새 데이터를 얻은 후,

풀다운하여 새로 고침:

기본 메서드: onPullDownRefresh, 원본 데이터 목록이 얻은 새 데이터에 연결된 후

배열에서 작업할 때마다 원래 배열을 재할당하려면 setData를 사용해야 합니다. 그렇지 않으면 데이터가 업데이트되지 않습니다(⊙ o ⊙ ).

4. 검색 기록 저장

구현 아이디어

wx.setStorage, wx.getStorage 및 wx.removeStorage

저장소 검색 기록:

wx.setStorage를 사용하여 검색을 실행할 때 검색 기록 목록에 있는지 확인하세요. 이 필드가 포함되어 있으면 무시하고, 없으면 이 필드를 배열에 푸시하세요.

표시합니다. 검색 기록:

검색 마스크를 표시할 때 wx.getStorage를 사용하여 검색 기록 목록을 가져오고 이를 루프로 표시합니다. 검색 기록 목록의 길이가 1보다 크면 검색 기록을 지우는 버튼이 표시됩니다.

검색기록 삭제:

단일삭제: 각 검색기록은 삭제 이벤트에 바인딩되며, 변경된 키워드의 색인은 채널의 검색기록 목록에서 가져옵니다. 색인에 해당하는 키워드를 삭제하고 다시 삭제하세요. wx.setStorage를 통해 저장하세요.

모두 삭제: 검색 기록에 해당하는 키워드를 직접 삭제하려면 wx.removeStorage를 사용하세요.

5. 아이디어 페이지의 스와이프 캐러셀 컴포넌트

원래 Zhihu 앱에서는 캐러셀 모듈에 내장된 세로 텍스트 캐러셀을 논의하고 있습니다. 그러나 미니 프로그램의 swiper 캐러셀 구성 요소는 서로 중첩을 지원하지 않으므로 구현할 수 없습니다. 부분적으로 쓰기/스타일을 변경해야 합니다. (ㄒoㄒ)/~~.

6. 천장으로 스크롤

페이지의 제목 표시줄이 위로 스크롤되면

천장 효과가 달성됩니다

전체 페이지는 다음과 같습니다. 로 래핑하고 바인드스크롤 이벤트를 바인딩하여 스크롤 거리를 모니터링합니다. Zhihu 예제 공유의 WeChat 미니 프로그램 버전

를 세로 방향으로 설정하는 경우 의 높이를 설정해야 합니다.

동일한 제목 표시줄을 복사하고 천장 스타일 클래스를 고정 추가하세요.

wx:if를 사용하여 현재 페이지의 스크롤 거리가 필요한 거리에 도달했는지 확인합니다. 필요한 거리에 도달하면 천장에 장착된 제목 표시줄이 렌더링됩니다.

<view class="find-hot-header fixed" wx:if="{{scrollTop >= 430}}">
   <view class="find-hot-title">最近热门</view>
</view>
<view class="find-hot-header">
    <view class="find-hot-title">最近热门</view>
</view>
로그인 후 복사

7. 전체 텍스트 확장 및 축소

표시 효과

텍스트 부분에 기본적으로 클래스를 추가하면 텍스트 두 줄 이상으로 줄임표가 표시됩니다.

.text-overflow{
  height: 85rpx;
  display: -webkit-box;
  word-break: break-all;
  text-overflow: ellipsis;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp:2;
}
로그인 후 복사

点击展开全文和收起全文时对showIndex[index]的值取反,对应添加或移除该class。

<view class="find-hot-content {{!showIndex[index] ? &#39;text-overflow&#39; : &#39;&#39;}}">
    {{item.content}}
</view>
<view wx:if="{{!showIndex[index]}}" class="find-show-all" data-index="{{index}}" bindtap="toggleShow">展开全文</view>
<view wx:if="{{showIndex[index]}}" class="find-show-all" data-index="{{index}}" bindtap="toggleShow">收起全文</view>
로그인 후 복사

8、更改switch样式

switch类名如下,一定要加上父类,不然全局的都会被改掉_(:з」∠)_。

父类 .wx-switch-input{
  display: inline-block;
  position: absolute;
  top: 20rpx;
  right: 20rpx;
  width: 84rpx;
  height: 44rpx;
}
父类 .wx-switch-input::before{
  width: 80rpx;
  height: 40rpx;
}
父类 .wx-switch-input::after{
  width: 40rpx;
  height: 40rpx;
}
로그인 후 복사

四、总结

通过这次小程序的开发,学到了很多东西,虽然遇到了很多问题,但解决问题的过程让我收获的更多,动手实践才是学习的最好方式。

相关推荐:

微信小程序组件化的解决思路和方法

微信小程序版2048小游戏

微信小程序之购物车的实现代码

위 내용은 Zhihu 예제 공유의 WeChat 미니 프로그램 버전의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Quark Netdisk를 Baidu Netdisk에 공유하는 방법은 무엇입니까? Quark Netdisk를 Baidu Netdisk에 공유하는 방법은 무엇입니까? Mar 14, 2024 pm 04:40 PM

Quark Netdisk와 Baidu Netdisk는 매우 편리한 저장 도구입니다. 많은 사용자가 이 두 소프트웨어가 상호 운용 가능한지 묻고 있습니다. Quark Netdisk를 Baidu Netdisk에 공유하는 방법은 무엇입니까? 이 사이트에서는 Quark 네트워크 디스크 파일을 Baidu 네트워크 디스크에 저장하는 방법을 사용자에게 자세히 소개합니다. Quark Network Disk에서 Baidu Network Disk로 파일을 저장하는 방법 방법 1. Quark Network Disk에서 Baidu Network Disk로 파일을 전송하는 방법을 알고 싶다면 먼저 Quark Network Disk에 저장해야 하는 파일을 다운로드한 다음 엽니다. Baidu 네트워크 디스크 클라이언트에서 압축 파일을 저장할 폴더를 선택한 다음 두 번 클릭하여 폴더를 엽니다. 2. 폴더를 연 후 창 왼쪽 상단에 있는 "업로드"를 클릭하세요. 3. 컴퓨터에 업로드해야 하는 압축 파일을 찾아 클릭하여 선택합니다.

NetEase Cloud Music을 WeChat Moments에 공유하는 방법_NetEase Cloud Music을 WeChat Moments에 공유하는 방법에 대한 튜토리얼 NetEase Cloud Music을 WeChat Moments에 공유하는 방법_NetEase Cloud Music을 WeChat Moments에 공유하는 방법에 대한 튜토리얼 Mar 25, 2024 am 11:41 AM

1. 먼저 NetEase Cloud Music에 들어간 다음 소프트웨어 홈페이지 인터페이스를 클릭하여 노래 재생 인터페이스로 들어갑니다. 2. 그런 다음 노래 재생 인터페이스에서 아래 그림의 빨간색 상자에 표시된 것처럼 오른쪽 상단에서 공유 기능 버튼을 찾아 공유 채널에서 공유 채널을 선택하고 다음 위치에서 "공유 대상" 옵션을 클릭합니다. 하단에서 첫 번째 "WeChat Moments"를 선택하면 WeChat Moments에 콘텐츠를 공유할 수 있습니다.

Baidu Netdisk에서 친구들과 파일을 공유하는 방법 Baidu Netdisk에서 친구들과 파일을 공유하는 방법 Mar 25, 2024 pm 06:52 PM

최근 Baidu Netdisk Android 클라이언트는 새로운 버전 8.0.0을 선보였습니다. 이 버전은 많은 변화를 가져올 뿐만 아니라 많은 실용적인 기능도 추가했습니다. 그 중 가장 눈길을 끄는 것은 폴더 공유 기능 강화다. 이제 사용자는 쉽게 친구를 초대하여 업무와 생활에서 중요한 파일을 공유하고 더욱 편리하게 협업하고 공유할 수 있습니다. 그렇다면 친구들과 공유해야 하는 파일을 어떻게 공유합니까? 아래에서 이 사이트의 편집자가 자세한 소개를 해줄 것입니다. 1) Baidu Cloud 앱을 열고 먼저 홈페이지에서 관련 폴더를 클릭한 다음 인터페이스 오른쪽 상단에 있는 [...] 아이콘을 클릭합니다(아래 참조). 2) 그런 다음에서 [+]를 클릭합니다. "공유 멤버" 열 ]을 선택하고 마지막으로 모두 확인합니다.

WeChat 미니 프로그램에서 카드 뒤집기 효과 구현 WeChat 미니 프로그램에서 카드 뒤집기 효과 구현 Nov 21, 2023 am 10:55 AM

WeChat 미니 프로그램에서 카드 뒤집기 효과 구현 WeChat 미니 프로그램에서 카드 뒤집기 효과를 구현하는 것은 사용자 경험과 인터페이스 상호 작용의 매력을 향상시킬 수 있는 일반적인 애니메이션 효과입니다. 다음은 WeChat 애플릿에서 카드 뒤집기 효과를 구현하는 방법을 자세히 소개하고 관련 코드 예제를 제공합니다. 먼저, 미니 프로그램의 페이지 레이아웃 파일에 두 개의 카드 요소를 정의해야 합니다. 하나는 앞면 내용을 표시하기 위한 것이고 다른 하나는 뒷면 내용을 표시하기 위한 것입니다. &lt;--index.wxml- -&gt;&l

망고tv 회원 계정공유 2023 망고tv 회원 계정공유 2023 Feb 07, 2024 pm 02:27 PM

Mango TV에는 다양한 유형의 영화, TV 시리즈, 예능 프로그램 및 기타 리소스가 있으며 사용자는 자유롭게 선택하여 시청할 수 있습니다. Mango TV 회원은 모든 VIP 드라마를 시청할 수 있을 뿐만 아니라 사용자가 드라마를 즐겁게 시청할 수 있도록 최고 화질을 설정할 수 있습니다. 아래에서 편집자는 사용자가 사용하고 서둘러 살펴볼 수 있도록 무료 Mango TV 멤버십 계정을 제공합니다. 구경하다. Mango TV 최신 회원 계정 무료 공유 2023: 참고: 이것은 최근 수집된 회원 계정이며 로그인하여 직접 사용할 수 있으며 비밀번호를 마음대로 변경하지 마십시오. 계좌번호: 13842025699 비밀번호: qds373 계좌번호: 15804882888 비밀번호: evr6982 계좌번호: 13330925667 비밀번호: jgqae 계좌번호: 1703

Alipay, 희귀 문자 라이브러리를 수집하고 보완하는 '한자 따기-희귀 문자' 미니 프로그램 출시 Alipay, 희귀 문자 라이브러리를 수집하고 보완하는 '한자 따기-희귀 문자' 미니 프로그램 출시 Oct 31, 2023 pm 09:25 PM

10월 31일 이 사이트의 소식에 따르면 올해 5월 27일 Ant Group은 '한자 선택 프로젝트'를 시작한다고 발표했으며 최근 새로운 진전을 보였습니다. Alipay는 '한자 선택 - 흔하지 않은 문자' 미니 프로그램을 출시했습니다. 희귀 캐릭터는 희귀 캐릭터 라이브러리를 보완하고 희귀 캐릭터에 대한 다양한 입력 경험을 제공하여 Alipay의 희귀 캐릭터 입력 방법을 개선하는 데 도움을 줍니다. 현재 사용자는 "한자픽업", "희귀문자" 등의 키워드를 검색하여 "특수문자" 애플릿에 진입할 수 있습니다. 미니 프로그램에서 사용자는 시스템에서 인식 및 입력되지 않은 희귀 문자의 사진을 제출할 수 있으며 확인 후 Alipay 엔지니어가 글꼴 라이브러리에 추가 항목을 작성합니다. 이 웹사이트에서는 미니 프로그램에서도 최신 문자 분할 입력 방식을 경험할 수 있다고 밝혔습니다. 이 입력 방식은 발음이 불분명한 희귀 문자를 위해 설계되었습니다. 사용자 해체

uniapp이 미니 프로그램과 H5 간의 빠른 전환을 달성하는 방법 uniapp이 미니 프로그램과 H5 간의 빠른 전환을 달성하는 방법 Oct 20, 2023 pm 02:12 PM

유니앱이 미니 프로그램과 H5 사이를 빠르게 전환하려면 구체적인 코드 예제가 필요합니다. 최근 모바일 인터넷의 발전과 스마트폰의 대중화로 인해 미니 프로그램과 H5는 필수 애플리케이션 형태가 되었습니다. 크로스 플랫폼 개발 프레임워크인 uniapp은 코드 세트를 기반으로 작은 프로그램과 H5 간의 변환을 신속하게 실현하여 개발 효율성을 크게 향상시킬 수 있습니다. 이 기사에서는 uniapp이 미니 프로그램과 H5 간의 신속한 변환을 달성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. 유니앱 유니아 소개

Discuz WeChat 공유가 표시되지 않는 문제 해결 Discuz WeChat 공유가 표시되지 않는 문제 해결 Mar 09, 2024 pm 03:39 PM

제목: Discuz WeChat 공유가 표시되지 않는 문제를 해결하려면 구체적인 코드 예제가 필요합니다. 모바일 인터넷의 발전으로 WeChat은 사람들의 일상생활에 없어서는 안될 부분이 되었습니다. 웹사이트 개발 시 사용자 경험을 개선하고 웹사이트 노출을 확대하기 위해 많은 웹사이트에 WeChat 공유 기능이 통합되어 사용자가 웹사이트 콘텐츠를 Moments 또는 WeChat 그룹에 쉽게 공유할 수 있습니다. 그러나 때때로 Discuz와 같은 오픈 소스 포럼 시스템을 사용할 때 WeChat 공유를 표시할 수 없는 문제가 발생하여 사용자 경험에 특정 어려움을 초래할 수 있습니다.

See all articles