WeChatアプレットはシンプルなチャットルームを実装します

WeChatアプレットはシンプルなチャットルームを実装します

この記事では、WeChatアプレットの具体的なコードを共有し、簡単なチャットルームを実装します。具体的な内容は次のとおりです。

チャ.js

// ページ/チャット/チャット.js
// ミニプログラムインスタンスを取得します。let app = getApp();
ページ({

  /**
   * ページの初期データ */
  データ: {
    ニックネーム:''、
    アバター:''、
    チャットリスト:[
      {
        ニックネーム:「小林」,
        アバター:'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1591617971938&di=30d9f3b49a0d1b27fb4b61ea424f82c9&imgtype=0&src=http%3A%2F%2Fa-ssl.duitang.com%2Fuploads%2Fitem%2F201610%2F07%2F20161007135058_nUxji.jpeg',
        内容:`こんにちは! `
      }
    ]、
    価値がない:''
  },
  送信メッセージ:関数(){
    _this = this とします。
    obj = {
      ニックネーム:_this.data.nickname,
      アバター:_this.data.avatar,
      コンテンツ:_this.data.invalue
    };
    arr = _this.data.chatlists とします。
    arr.push(オブジェクト)
    _this.setData({
      チャットリスト:arr,
      価値がない:''
    });

    // チャット内容をサーバーに送信し、処理後に返して、返されたデータをチャットリストに格納します},
  getInput:関数(e){
    console.log(e.detail.value);
    this.setData({invalue:e.detail.value});
  },

  /**
   * ライフサイクル機能 - ページの読み込みをリッスンする*/
  onLoad: 関数 (オプション) {
    console.log(app.globalData.userInfo.nickName);
    this.setData({
      ニックネーム:app.globalData.userInfo.nickName、
      アバター:app.globalData.userInfo.avatarUrl
    });
  },

  /**
   * ライフサイクル関数 - ページの初期レンダリングの完了を待機します*/
  onReady: 関数 () {

  },

  /**
   * ライフサイクル機能 - モニターページ表示 */
  onShow: 関数() {

  },

  /**
   * ライフサイクル機能 - ページの非表示を監視する*/
  onHide: 関数 () {

  },

  /**
   * ライフサイクル機能 - ページのアンインストールを監視する*/
  onUnload: 関数 () {

  },

  /**
   * ページ関連のイベント処理関数 - ユーザーのプルダウンアクションをリッスンする */
  onPullDownRefresh: 関数 () {

  },

  /**
   * ページ上のボトムイベントを処理する関数*/
  onReachBottom: 関数 () {

  },

  /**
   * ユーザーは右上隅をクリックして共有します*/
  onShareAppMessage: 関数 () {

  }
})

チャット.wxml

<block wx:for="{{チャットリスト}}" wx:for-index="ind" wx:for-item="チャット" wx:key="ind">

<view class="chat self" wx:if="{{nickname == chat.nickname}}">
 <view class="right">
  <view class="content">
   {{チャットコンテンツ}}
  </ビュー>
 </ビュー>
 <view class="left">
  <image class="avatar" src="{{chat.avatar}}"></image>
 </ビュー>
</ビュー>

<view class="chat" wx:else>
 <view class="left">
  <image class="avatar" src="{{chat.avatar}}"></image>
 </ビュー>
 <view class="right">
  <view class="nickname">{{chat.nickname}}</view>
  <view class="content">
      {{チャットコンテンツ}}
  </ビュー>
 </ビュー>
</ビュー>

</ブロック>


<view class="form">
 <view class="weui-cell weui-cell_input">
  <input class="weui-input" value="{{invalue}}" bindinput="getInput" placeholder="チャットの内容を入力してください" />
 </ビュー>
 <button type="primary" bindtap="sendMsg">送信</button>
</ビュー>

チャット.css

/* ページ/チャット/チャット.wxss */
.アバター{
  幅: 130rpx;
  高さ: 130rpx;
  境界線の半径: 50%;
}


。チャット{
  ディスプレイ: フレックス;
  アイテムの位置を中央揃えにします。
  上マージン: 15px;
}
。自己{
  コンテンツの端揃え: flex-end;
  上マージン: 15px;
}

。左{
  パディング: 20rpx;
  align-self:flex-start;
}
.self .left{
  パディング上部: 0;
}

。右{
  左マージン: 10px;
}
.right .content{
  背景色: #eee;
  色: #123;
  フォントサイズ: 16px;
  /* 境界線:1px 実線 #ddd; */
  パディング: 10px;
  行の高さ: 26px;
  右マージン: 10px;
  境界線の半径: 3px;
  位置: 相対的;
  最小高さ: 20px;
}
.right .content::before{
  コンテンツ: ' ';
  表示: ブロック;
  幅: 0;
  高さ: 0;
  境界線: 12px 透明の実線;
  右境界線の色:#eee;
  位置: 絶対;
  上: 10px;
  左: -23px;
}
.self .right .content::before{
  境界線: 0;
}
.self .right .content::after{
  コンテンツ: ' ';
  表示: ブロック;
  幅: 0;
  高さ: 0;
  境界線: 12px 透明実線;
  左境界線の色:#1ad409;
  位置: 絶対;
  上: 10px;
  右: -23px;

}
.self .right .content{
  背景色: #1ad409;
}

。形状{
  位置: 固定;
  下部: 0;
  背景色: #eee;
  幅: 750rpx;
  ディスプレイ: フレックス;
  高さ: 39px;
  アイテムの位置を中央揃えにします。
}
.フォーム入力{
  幅: 600rpx;
  背景色: #fff;
  高さ: 36px;
  行の高さ: 36px;
  パディング: 0 5px;
}
ボタン{
  幅:65rpx;
  高さ:36px;
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • WeChatアプレットがチャットルーム機能を実現
  • WeChatアプレットがチャットルームを実装
  • WeChatアプレット開発チャットルームの詳細な説明 - リアルタイムチャット、画像プレビューのサポート
  • WeChatアプレットWebSocketチャットルームを実装するためのサンプルコード
  • WeChatアプレットチャットルームの簡単な実装

<<:  Centos に PHP7.4 と Nginx をインストールする方法

>>:  Windows 7 で MySQL 8.0.16 をインストールして使用する場合、パスワードの変更と Navicat への接続に関する問題が発生する

推薦する

Vue ダイナミック バインディング アイコンの完全な手順

0 アイコンと画像の違いアイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコン...

Vue の better-scroll コンポーネントを使用して水平スクロール機能を実現する

について最近、Vue を学習する過程で、基本的な知識の練習と強化を目的として、Qunar.com の...

モバイルデバイスにおける適応レイアウトの問題に関する簡単な説明 (レスポンシブ、rem/em、Js ダイナミクス)

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイ...

Docker Enterprise Edition を使用して独自のプライベート レジストリ サーバーを構築する

Docker は本当に素晴らしいです。特に、仮想マシンを使用する場合に比べて、Docker イメージ...

CSS でのシングル div 描画テクニックの実装

純粋な HTML + CSS を使ってドラえもんの絵を描くなど、CSS 描画に関する記事をよく見かけ...

Docker で nginx の https を設定する方法

https をサポートしていない Web サイトは、ブラウザによって徐々に安全でないとマークされるた...

シリアルポート使用時のvue-electronの問題解決

エラーは次のとおりです:キャッチされない TypeError: 未定義のプロパティ 'mod...

MySql ファジークエリ JSON キーワード取得ソリューションの例

目次序文オプション1:オプション2:オプション3:オプション4(最終的に採用されたオプション):要約...

DockerとDocker-Composeの使用例

Docker は、アプリケーションをより速く配信するのに役立つオープンソースのコンテナ エンジンです...

mysql8.0.19 の基本データ型の詳細な説明

MySQL 基本データ型一般的な MySQL データ型の概要 ![1036857-201708011...

MySQLのkillがスレッドをkillできない理由

目次背景問題の説明原因分析シミュレーションする総括する背景日常の使用において、MySQL で個別また...

Vue コンポーネント値転送中のデータ損失の分析と解決

序文前回の記事では、JavaScript の 2 つのデータ型、基本型と参照型、および参照型の浅いコ...

nginxカスタム変数と組み込み定義済み変数の使用

概要Nginx では変数を使用して設定を簡素化し、設定の柔軟性を向上させることができます。すべての変...

ウェブページ上でデスクトップ exe プログラムを呼び出す簡単な方法

この記事では主に、Web ページ上でデスクトップ exe プログラムを呼び出す方法を紹介します。 W...

Linux でのスケジュールされたタスクと遅延タスクの詳細な説明

で+ 時間 17:23に at> touch /mnt/file{1..9} ##アクションを...