uni-appは、コマンドラインを使用してフレームワークを構築し、uni-simple-routerとuni-requestを導入します

ユニアプリが急速に開発されており、開発ツールが非常に便利であることは誰もが知っています。

公式サイトの手順に従って、新しいユニアプリプロジェクトを作成しましょう

公式ウェブサイトのドア

環境はvueです(自分でインストールしてください)

以下の手順は公式ウェブサイトから取られています

公式バージョンを使用する(HBuilderXの最新の公式バージョンに対応)

vue create -p dcloudio/uni-preset-vue my-project

アルファ版を使用する(HBuilderXの最新のアルファ版に対応)

vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project

公式ウェブサイトは次のように促します:

ここに画像の説明を挿入

新しいコマンドを実行すると、ネットワークからモジュールがダウンロードされます。これにはしばらく時間がかかります。

ここに画像の説明を挿入

以前にtsのデフォルトのテンプレートをカスタマイズしたことがあるので、次の図に示すように、公式Webサイトよりも1つ多くのオプションが提供されます。

ここに画像の説明を挿入

初めてHellouni-appを選択するだけです

次に、ダウンロードが成功するのを待ちます。

プロジェクトに入り、npm runserveを実行します

ここに画像の説明を挿入

初めて開いたときはジャンプボタンがありません。これは後で追加したものなので、気にしないでください。

ここに画像の説明を挿入

最初に、単純な要求インターセプトのための比較的単純なプラグインであるuni-requestを紹介します。

cnpm install uni-request --save

次に、jsファイルを追加し、リクエスト情報をカスタマイズします

import uniRequest from 'uni-request'

uniRequest.defaults.baseURL = '*******';
uniRequest.defaults.headers.common['Authorization'] = '****';
uniRequest.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';

//  其余自定义信息可参考axios封装自定义

export default uniRequest

次に、main.jsでマウントをグローバルに導入します

import uniRequest from '@/utils/request.js'

Vue.prototype.uniRequest = uniRequest

コードにテストを導入しましょう

index.vueファイル内

まず、uni.requestネイティブAPIの使用法をテストします。これは無料のAPIです。公式ウェブサイトにアクセスして、申請してください。

// 获取天气
getWeatherInfo(cityId) {
    
    
   const that = this
   // 测试发送请求
   uni.request({
    
    
     url: 'https://www.tianqiapi.com/api?version=v1&appid=****&appsecret=****&cityid=' + cityId,
     method: 'GET',
     success: function (res) {
    
    
        console.log(res)
     },
     fail: function (err) {
    
    }
   })
 },

リクエストは成功しました

ここに画像の説明を挿入
次に、パッケージ化されたuniRequestを使用してテストし、非同期リクエスト同期を使用します

async getHomeData() {
    
    
   // 测试发送请求
   const res = await this.uniRequest.get('/template/getTemplateList?type=applet')
   console.log(res)
 },

リクエストは成功しました

ここに画像の説明を挿入

それから、一番面倒なユニシンプルルータープラグインを紹介しました。公式サイトではvue-routerと同じと書いてありますが、pだけが早く開発されて、開発ツールがとても便利だとよく思います。 。公式サイトの
手順に従って、新しいユニアプリプロジェクトを作成しましょう。公式ウェブサイトのドア環境はすべてvueです(自分でインストールします)。次の手順は、公式ウェブサイトから取得し、公式バージョンを使用します( HBuilderXの最新の公式バージョン)

vue create -p dcloudio/uni-preset-vue my-project

アルファ版を使用する(HBuilderXの最新のアルファ版に対応)

vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project

公式ウェブサイトのプロンプトは次のとおりです。ここに画像の説明を挿入新しいコマンドを実行すると、ネットワークからモジュールがダウンロードされます。しばらく時間がかかりここに画像の説明を挿入ます。以前にtsのデフォルトテンプレートをカスタマイズしたため、公式ウェブサイトよりも1つ多くのオプションがあります。下の図でここに画像の説明を挿入初めて、Hello uni -App OKを選択し、ダウンロードが成功するのを待ちます。プロジェクトに入り、npm runserveを実行しますここに画像の説明を挿入最初に開いたときはジャンプボタンがありません。これは後で追加したものです。心配しないでください。ここに画像の説明を挿入簡単なリクエスト用に、比較的シンプルなプラグインであるuni-requestを紹介しましょう傍受。

cnpm install uni-request --save

次に、jsファイルを追加し、リクエスト情報をカスタマイズします

timport uniRequest from 'uni-request'uniRequest.defaults.baseURL = '*******';
uniRequest.defaults.headers.common['Authorization'] = '****';
uniRequest.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';//  其余自定义信息可参考axios封装自定义export default uniRequest

次に、main.jsでマウントをグローバルに導入します

import uniRequest from '@/utils/request.js'
Vue.prototype.uniRequest = uniRequest

コードでテストを紹介しましょう。まず、index.vueファイルでuni.requestネイティブAPIの使用法をテストします。これは無料のAPIです。アドレスの公式ウェブサイトにアクセスして適用してください。

// 获取天气getWeatherInfo(cityId) {   
const that = this   // 测试发送请求   
uni.request({
    
         
url: 'https://www.tianqiapi.com/api?version=v1&appid=****&appsecret=****&cityid=' + cityId,     
method: 'GET',     
success: function (res) {
    
     console.log(res) },     
fail: function (err) {
    
    }   }) },

リクエストは成功しました。ここに画像の説明を挿入次に、パッケージ化されたuniRequestを使用してテストし、非同期リクエスト同期を使用します

async getHomeData() {
    
       // 测试发送请求   
const res = await this.uniRequest.get('/template/getTemplateList?type=applet')   console.log(res) },

リクエストが成功したここに画像の説明を挿入ので、一番面倒なuni-simple-routerプラグインを紹介しました。公式サイトではvue-routerと同じと書いてありますが、ルーティングを自動で構築する方法しか見つけられないことがよくあります。テーブルをうまく導入することができます。その後、まだ一連の質問がありました。

公式ウェブサイトのドア

ルーティングテーブルを自分で作成したときに発生した問題について説明します。

紹介方法については詳しく説明しませんが、公式サイトではさまざまな方法で紹介しています。

公式サイトモードによると、npmを使って紹介しました

公式サイトをフォローし、直接以下の方法で紹介する場合

ここに画像の説明を挿入

その後、RouterMountはさまざまなエラーを報告するか、容量が不足している可能性があります。ご不明な点がございましたら、直接ご連絡ください。実際、名前とパスが見つからず、未定義であるという別のエラーがありますが、テストが表示されない可能性があるため、これにコメントすることで解決することもできます。

ここに画像の説明を挿入

router /index.jsのコードを添付してください

import Vue from 'vue'
import Router,{
    
    RouterMount} from 'uni-simple-router'

Vue.use(Router)

const router = new Router({
    
    
  debugger: true,
  routes: [
    {
    
    
      //注意:path必须跟pages.json中的地址对应,最前面别忘了加'/'哦
      path: '/pages/index/index',
      name: 'index', //在路由跳转时可直接使用name来跳转,后面会讲到
      aliasPath: '/' //对于h5端你必须在首页加上aliasPath并设置为/
      //可以自定义路由元信息
    },
    {
    
    
      path: '/pages/login/login',
      name: 'login'
    }
  ]
})

console.log(router)

router.beforeEach((to, from, next) => {
    
    
  // ...
  console.log(to)
  console.log(from)
  next()
})

export default router

解決策は置くことです

//v1.3.5起 H5端 你应该去除原有的app.$mount();使用路由自带的渲染方式
// #ifdef H5
RouterMount(app, '#app');
// #endif

// #ifndef H5
app.$mount(); //为了兼容小程序及app端必须这样写才有效果
// #endif

このように直接書かれているので、クロスプラットフォームで問題が発生すると推定されますが、少なくともエラーは発生しません(大物にアドバイスを求めてください)

app.$mount();

これは成功後の外観ですが、ページを自動的に切り替えることはなく、次のような関数が使用された場合にのみ、ルーティングガード関数がトリガーされます。$ Router。**

this.$Router.push('/pages/login/login')

ここに画像の説明を挿入

2番目の方法:ルーティングテーブルを自動的に作成する

プロセスは公式ウェブサイトと同じです

公式ウェブサイトのドア

vue.config.jsを追加し、uni-read-pagesを導入した後、再起動する必要があるという小さなリマインダーがあります。何度も試してみて、導入したプロセスに問題があると思ったのですが、再起動しなかったので、編集して再起動しました。

インポート結果は上のスクリーンショットと同じです。最初にページにアクセスしたときにルートインターセプトはトリガーされず、this。$ Router。**が使用されていない場合はトリガーされません。ここでの問題も私が紹介したプロセスの問題。ようこそ親愛なる友人、私を啓発してください。

実施する!

他のプラグインは将来導入され、更新される予定です。楽しみにしています!

おすすめ

転載: blog.csdn.net/lb1135909273/article/details/106355354