検索
ホームページウェブフロントエンドjsチュートリアルmpvue で小さなプログラムを開発する手順の詳細な説明

今回は mpvue で小さなプログラムを開発する手順について詳しく説明します。 mpvue で小さなプログラムを開発する際の 注意事項 は何ですか?実際の事例を見てみましょう。

1. 例

ライフ サイクル

Vue 自体のライフ サイクルに加えて、mpvue はミニ プログラムのライフ サイクルとも互換性があります。ライフ サイクルのこの部分のフックは WeChat のページから来ています。特別な状況を除いて、

ではなく、ミニプログラムのライフサイクルフックを使用することをお勧めします。

アプリパーツ: aOnLAUNCH、アプレットの開始時に

  • を初期化するか、バックグラウンドからフロントデスクに入り、アプレットがフロントデスクパーツからバックグラウンドに入ったときに

  • を表示します:

  • onLoad、ページの読み込みを監視

onShow、ページの表示を監視

  • onReady、ページの初期レンダリング完了を監視

  • onHide、ページの非表示を監視

  • onUnロード、ページのアンロードを監視する

  • onPullDownRefresh、ユーザーのプルダウンアクションを監視します

  • onReachBottom、ページプルダウンイベントのハンドラー関数

  • onShareAppMessage、ユーザーが右上隅をクリックして共有します

  • onPageスクロール、ページがスクロールします

  • onTabItemTap、現在のタブ ページがクリックされると、タブがクリックされるとトリガーされます (mpvue 0.0.16 でサポートされます)

  • 使用例:

    new Vue({
      data: {
        a: 1
      },
      created () {
        // `this` 指向 vm 实例
        console.log('a is: ' + this.a)
      },
      onShow () {
        // `this` 指向 vm 实例
        console.log('a is: ' + this.a, '小程序触发的 onshow')
      }
    })
    // => "a is: 1"
  • 注:
created: () => console.log(this.a) や vm.$watch('a', newValue => this.myMethod()) などのオプション属性またはコールバックではアロー関数を使用しないでください。アロー関数は親コンテキストにバインドされているため、これは期待どおりの Vue インスタンスではなく、this.a または this.myMethod は未定義になります。

WeChat アプレット ページのクエリ パラメーターは onLoad を通じて取得され、mpvue はこれを最適化し、対応するパラメーター データを this.$root.$mp.query

を通じて直接取得します。その呼び出しは onLoad ライフ内にある必要があります。 onShow などの定期的なトリガーの後に使用されます。
  1. 2. テンプレート構文
  2. は純粋な HTML をサポートしません

    アプレット内のすべての BOM/DOM は使用できません。つまり、v-html コマンドは使用できません。

一部の複雑な JavaScript レンダリング式はサポートされていません

WeChat アプレット (データ バインディング

) の容量制限のため、テンプレート内の {{}} 二重中括弧部分を直接 wxml ファイルにエンコードします。そのため、複雑な JavaScript 式はサポートできません。

現在利用可能なのは + - * % ?: ! == === > 残りは改善する必要があります。

フィルタをサポートしていません

レンダリング部分はwxmlに変換されます。wxmlはフィルタをサポートしていないため、この部分の関数はサポートされていません。

は関数をサポートしていません

はテンプレートでのメソッドの使用をサポートしていません。

リストレンダリング

完全サポート 公式ドキュメント: リストレンダリング

注意すべき点が 1 つあります。

ネストされたリストレンダリングでは、異なるインデックスを指定する必要があります。

<!-- 在这种嵌套循环的时候, index 和 itemIndex 这种索引是必须指定,且别名不能相同,正确的写法如下 -->
<template>
    <ul>
        <li>
            {{item.value}}
        </li>
    </ul>
</template>

イベントハンドラ

inputとtextareaのchangeイベントはblurイベントに変換されます。

注:

たとえば、bindregionchange イベントは、dom 上のバインドを @

@regionchange に直接変更することもできます。また、そのイベント タイプには begin と end

があるため、handleProxy でどのイベントであるかを区別することができません。そのため、そのようなイベントをリッスンするときは、イベント名とイベント タイプの両方をリッスンすることになります。同じ時間

   <map><map></map></map>

  • 小程序能力所致,bind 和 catch 事件同时绑定时候,只会触发 bind ,catch 不会被触发,要避免踩坑。

  • 事件修饰符

    - .stop 的使用会阻止冒泡,但是同时绑定了一个非冒泡事件,会导致该元素上的 catchEventName 失效!
    • .prevent 可以直接干掉,因为小程序里没有什么默认事件,比如submit并不会跳转页面

    • .capture 支持 1.0.9

    • .self 没有可以判断的标识

    • .once 也不能做,因为小程序没有 removeEventListener, 虽然可以直接在 handleProxy 中处理,但非常的不优雅,违背了原意,暂不考虑

  • 其他 键值修饰符 等在小程序中压根没键盘,所以。。。

  • 三、组件

    有且只能使用单文件组件(.vue 组件)的形式进行支持。其他的诸如:动态组件,自定义 render,和

    详细的不支持列表:

    • 暂不支持在组件引用时,在组件上定义 click 等原生事件、v-show(可用 v-if 代替)和 class style 等样式属性(例: 样式是不会生效的),因为编译到wxml,小程序不会生成节点,建议写在内部顶级元素上。

    • Slot(scoped 暂时还没做支持)

    • 动态组件

    • 异步组件

    • inline-template

    • X-Templates

    • keep-alive

    • transition

    • class

    • style

    小程序组件

    mpvue 可以支持小程序的原生组件,比如: picker,map 等,需要注意的是原生组件上的事件绑定,需要以 vue 的事件绑定语法来绑定,如 bindchange="eventName" 事件,需要写成 @change="eventName"

    示例代码:

    <picker>
        <view>
          当前选择: {{date}}
        </view>
    </picker>

    四、常见问题

    1. 如何获取小程序在 page onLoad 时候传递的 options

    在所有 页面 的组件内可以通过 this.$root.$mp.query 进行获取。

    2. 如何获取小程序在 app onLaunch/onShow 时候传递的 options

    在所有的组件内可以通过 this.$root.$mp.appOptions 进行获取。

    3. 如何捕获 app 的 onError

    由于 onError 并不是完整意义的生命周期,所以只提供一个捕获错误的方法,在 app 的根组件上添加名为 onError 的回调函数即可。如下:

    export default {
       // 只有 app 才会有 onLaunch 的生命周期
       onLaunch () {
           // ...
       },
       // 捕获 app error
       onError (err) {
           console.log(err)
       }
    }

    相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

    推荐阅读:

    前端中排序算法实例详解

    JS中使用接口步骤详解

    以上がmpvue で小さなプログラムを開発する手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    JavaScriptとWeb:コア機能とユースケースJavaScriptとWeb:コア機能とユースケースApr 18, 2025 am 12:19 AM

    Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

    JavaScriptエンジンの理解:実装の詳細JavaScriptエンジンの理解:実装の詳細Apr 17, 2025 am 12:05 AM

    JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

    Python vs. JavaScript:学習曲線と使いやすさPython vs. JavaScript:学習曲線と使いやすさApr 16, 2025 am 12:12 AM

    Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

    Python vs. JavaScript:コミュニティ、ライブラリ、リソースPython vs. JavaScript:コミュニティ、ライブラリ、リソースApr 15, 2025 am 12:16 AM

    PythonとJavaScriptには、コミュニティ、ライブラリ、リソースの観点から、独自の利点と短所があります。 1)Pythonコミュニティはフレンドリーで初心者に適していますが、フロントエンドの開発リソースはJavaScriptほど豊富ではありません。 2)Pythonはデータサイエンスおよび機械学習ライブラリで強力ですが、JavaScriptはフロントエンド開発ライブラリとフレームワークで優れています。 3)どちらも豊富な学習リソースを持っていますが、Pythonは公式文書から始めるのに適していますが、JavaScriptはMDNWebDocsにより優れています。選択は、プロジェクトのニーズと個人的な関心に基づいている必要があります。

    C/CからJavaScriptへ:すべてがどのように機能するかC/CからJavaScriptへ:すべてがどのように機能するかApr 14, 2025 am 12:05 AM

    C/CからJavaScriptへのシフトには、動的なタイピング、ゴミ収集、非同期プログラミングへの適応が必要です。 1)C/Cは、手動メモリ管理を必要とする静的に型付けられた言語であり、JavaScriptは動的に型付けされ、ごみ収集が自動的に処理されます。 2)C/Cはマシンコードにコンパイルする必要がありますが、JavaScriptは解釈言語です。 3)JavaScriptは、閉鎖、プロトタイプチェーン、約束などの概念を導入します。これにより、柔軟性と非同期プログラミング機能が向上します。

    JavaScriptエンジン:実装の比較JavaScriptエンジン:実装の比較Apr 13, 2025 am 12:05 AM

    さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

    ブラウザを超えて:現実世界のJavaScriptブラウザを超えて:現実世界のJavaScriptApr 12, 2025 am 12:06 AM

    現実世界におけるJavaScriptのアプリケーションには、サーバー側のプログラミング、モバイルアプリケーション開発、モノのインターネット制御が含まれます。 2。モバイルアプリケーションの開発は、ReactNativeを通じて実行され、クロスプラットフォームの展開をサポートします。 3.ハードウェアの相互作用に適したJohnny-Fiveライブラリを介したIoTデバイス制御に使用されます。

    next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)next.jsを使用してマルチテナントSaaSアプリケーションを構築する(バックエンド統合)Apr 11, 2025 am 08:23 AM

    私はあなたの日常的な技術ツールを使用して機能的なマルチテナントSaaSアプリケーション(EDTECHアプリ)を作成しましたが、あなたは同じことをすることができます。 まず、マルチテナントSaaSアプリケーションとは何ですか? マルチテナントSaaSアプリケーションを使用すると、Singの複数の顧客にサービスを提供できます

    See all articles

    ホット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衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    MinGW - Minimalist GNU for Windows

    MinGW - Minimalist GNU for Windows

    このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    WebStorm Mac版

    WebStorm Mac版

    便利なJavaScript開発ツール

    ZendStudio 13.5.1 Mac

    ZendStudio 13.5.1 Mac

    強力な PHP 統合開発環境

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター