मिनी ऐप्लिकेशन कॉम्पोनेंट

वेब कॉम्पोनेंट

वेब कॉम्पोनेंट यह डेवलपर वादा करता है कि उन्हें साथ मिलकर काम करने और बेहतरीन ऐप्लिकेशन बनाने में मदद मिलेगी. के उदाहरण ऐसे ऐटमिक कॉम्पोनेंट, GitHub के टाइम-एलिमेंट, स्टीफ़न जूडिस web-vitals-element या बिना किसी शर्म वाला प्लग, Google का गहरे रंग वाला मोड टॉगल. जब बात पूरा डिज़ाइन सिस्टम लगा दिया है, हालांकि मैंने देखा है कि लोग एक ही वेंडर के कॉम्पोनेंट शामिल करते हैं. उदाहरणों की अधूरी सूची में SAP की, UI5 वेब कॉम्पोनेंट, पॉलिमर एलिमेंट, Vaadan के एलिमेंट, Microsoft के एलिमेंट तेज़, मटीरियल वेब कॉम्पोनेंट, शायद एएमपी कॉम्पोनेंट वगैरह. एक के दायरे से बाहर की उन चीज़ों की संख्या है जो इस लेख के दायरे में नहीं आतीं. हालांकि, कई डेवलपर ने React, Vue.js जैसे फ़्रेमवर्क Ember.js वगैरह. दूसरों से संपर्क करने के बजाय, डेवलपर को इनमें से कोई भी विकल्प (या आपके नज़रिए के आधार पर, उन्हें टेक्नोलॉजी का विकल्प चुनने के लिए ज़बरदस्ती करें), सुपर ऐप उपलब्ध कराने वाली कंपनियां, दुनिया भर में कॉम्पोनेंट का ऐसा सेट उपलब्ध कराती हैं जिसका इस्तेमाल डेवलपर को करना होता है.

मिनी ऐप्लिकेशन के कॉम्पोनेंट

इन कॉम्पोनेंट को ऊपर बताई गई किसी भी कॉम्पोनेंट लाइब्रेरी की तरह इस्तेमाल किया जा सकता है. पाने के लिए उपलब्ध कॉम्पोनेंट की खास जानकारी देखें, तो आपके पास WeChat के कॉम्पोनेंट की लाइब्रेरी, ByteDance के कॉम्पोनेंट, Alipay के कॉम्पोनेंट, Baidu और क्विक ऐप्लिकेशन कॉम्पोनेंट.

पहले मैंने दिखाया था कि उदाहरण के लिए, WeChat के <image> हुड के तहत एक वेब कॉम्पोनेंट है, न कि ये सभी कॉम्पोनेंट, तकनीकी रूप से वेब कॉम्पोनेंट नहीं हैं. कुछ सूचनाएं मिल रही हैं <map> और <video> जैसे कॉम्पोनेंट, इस तरह रेंडर किए जाते हैं ओएस में पहले से मौजूद कॉम्पोनेंट जो वेबव्यू पर लेयर होते हैं. डेवलपर के लिए, लागू करने की यह जानकारी ज़ाहिर नहीं की गई है, उन्हें किसी अन्य कॉम्पोनेंट की तरह प्रोग्राम किया जाता है.

हमेशा की तरह, जानकारी अलग-अलग होती है, लेकिन सभी सुपर ऐप्लिकेशन के लिए प्रोग्रामिंग के कॉन्सेप्ट एक जैसे होते हैं सेवा देने वाली कंपनियां. डेटा बाइंडिंग एक अहम सिद्धांत है, जैसा कि मार्कअप की भाषाएं. आम तौर पर, कॉम्पोनेंट को फ़ंक्शन के हिसाब से ग्रुप में बांटा जाता है. इसलिए, इन कॉम्पोनेंट का पता लगाने के लिए, तो कोई काम आसान हो जाता है. नीचे Alipay की कैटगरी से जुड़ा एक उदाहरण दिया गया है, जो इससे मिलता-जुलता है कॉम्पोनेंट के ग्रुप में भी शामिल कर सकता है.

  • कंटेनर देखें
    • view
    • swiper
    • scroll-view
    • cover-view
    • cover-image
    • movable-view
    • movable-area
  • बुनियादी कॉन्टेंट
    • text
    • icon
    • progress
    • rich-text
  • फ़ॉर्म के कॉम्पोनेंट
    • button
    • form
    • label
    • input
    • textarea
    • radio
    • radio-group
    • checkbox
    • checkbox-group
    • switch
    • slider
    • picker-view
    • picker
  • नेविगेट करने के लिए लिस्ट
    • navigator
  • मीडिया कॉम्पोनेंट
    • image
    • video
  • कैनवस
    • canvas
  • मैप
    • map
  • कॉम्पोनेंट खोलें
    • web-view
    • lifestyle
    • contact-button
  • सुलभता सुविधाएं
    • aria-component

नीचे, Alipay के <image> को देखा जा सकता है. a:for डायरेक्टिव (सूची रेंडर करना देखें) जो किसी इमेज के डेटा के कलेक्शन पर लूप करता है index.js में उपलब्ध कराया गया.

/* index.js */
Page({
  data: {
    array: [
      {
        mode: "scaleToFill",
        text: "scaleToFill",
      },
      {
        mode: "aspectFit",
        text: "aspectFit",
      },
    ],
    src: "https://images.example.com/sample.png",
  },
  imageError(e) {
    console.log("image", e.detail.errMsg);
  },
  onTap(e) {
    console.log("image tap", e);
  },
  imageLoad(e) {
    console.log("image", e);
  },
});
<!-- index.axml -->
<view class="page">
  <view class="page-section" a:for="{{array}}" a:for-item="item">
    <view class="page-section-demo" onTap="onTap">
      <image
        class="image"
        mode="{{item.mode}}"
        onTap="onTap"
        onError="imageError"
        onLoad="imageLoad"
        src="{{src}}"
        lazy-load="true"
        default-source="https://images.example.com/loading.png"
      />
    </view>
  </view>
</view>

item.mode की डेटा बाइंडिंग को mode एट्रिब्यूट और src से src एट्रिब्यूट पर ध्यान दें. और तीन इवेंट हैंडलर onTap, onError, और onLoad को एक ही नाम के फ़ंक्शन में शामिल किया जाता है. जैसे पहले दिखाया जाता है, तब <image> टैग आंतरिक रूप से <div>, जिसमें इमेज के फ़ाइनल डाइमेंशन के प्लेसहोल्डर, वैकल्पिक लेज़ी लोडिंग, एक डिफ़ॉल्ट सोर्स, वगैरह

कॉम्पोनेंट के लिए उपलब्ध कॉन्फ़िगरेशन के सभी विकल्प, दस्तावेज़. दस्तावेज़ों में एम्बेड की गई सिम्युलेटर के साथ कॉम्पोनेंट की झलक कोड को तुरंत समझने लायक बना देता है.

एम्बेड किए गए कॉम्पोनेंट की झलक के साथ Alipay कॉम्पोनेंट का दस्तावेज़. इसमें सिम्युलेटर वाला एक कोड एडिटर दिखाया गया है, जो सिम्युलेटेड iPhone 6 पर रेंडर किए गए कॉम्पोनेंट को दिखाता है.
एम्बेड किए गए कॉम्पोनेंट की झलक के साथ Alipay कॉम्पोनेंट का दस्तावेज़.
एक अलग ब्राउज़र टैब में चल रहे Alipay कॉम्पोनेंट की झलक, जिसमें सिम्युलेटर वाला एक कोड एडिटर दिख रहा है. यह सिम्युलेटर, एक नकली iPhone 6 पर रेंडर किया गया कॉम्पोनेंट दिखाता है.
Alipay के कॉम्पोनेंट की झलक, इसके टैब में पॉप-अप हुई है.

हर कॉम्पोनेंट में एक क्यूआर कोड भी होता है, जिसे Alipay ऐप्लिकेशन से स्कैन किया जा सकता है. इस कोड से कॉम्पोनेंट खुलता है अपने-आप में पूरे होने वाले मिनिमम उदाहरण का इस्तेमाल करें.

दस्तावेज़ में मौजूद क्यूआर कोड को स्कैन करने के बाद, असली डिवाइस पर Alipay के `इमेज` कॉम्पोनेंट की झलक देखी गई.
Docs में मिले क्यूआर कोड लिंक की मदद से, असली डिवाइस पर Alipay <image> कॉम्पोनेंट की झलक देखी जा सकती है.

डेवलपर, दस्तावेज़ की मदद से सीधे Alipay DevTools IDE पर जा सकते हैं. इसके लिए, मालिकाना यूआरआई स्कीम antdevtool-tiny://. इससे दस्तावेज़ को सीधे इस मिनी ऐप्लिकेशन प्रोजेक्ट को इंपोर्ट किया जा सकेगा, ताकि डेवलपर कॉम्पोनेंट को तुरंत इस्तेमाल करना शुरू कर सकें.

कस्टम कॉम्पोनेंट

वेंडर से मिले कॉम्पोनेंट का इस्तेमाल करने के अलावा, डेवलपर कस्टम कॉम्पोनेंट भी बना सकते हैं. कॉन्टेंट बनाने कॉन्सेप्ट मौजूद है WeChat, ByteDance, Alipay, और Baidu और साथ ही क्विक ऐप्लिकेशन. उदाहरण के लिए, Baidu के कस्टम कॉम्पोनेंट में चार फ़ाइलें होती हैं, जो एक ही फ़ोल्डर में होनी चाहिए: custom.swan, custom.css, custom.js, और custom.json.

custom.json फ़ाइल, फ़ोल्डर के कॉन्टेंट को कस्टम कॉम्पोनेंट के तौर पर दिखाती है.

{
  "component": true
}

custom.swan फ़ाइल में मार्कअप और सीएसएस custom.css शामिल है.

<view class="name" bindtap="tap">{{name}} {{age}}</view>
.name {
  color: red;
}

custom.js फ़ाइल में लॉजिक मौजूद है. कॉम्पोनेंट लाइफ़साइकल फ़ंक्शन attached() हैं, detached(), created(), और ready(). कॉम्पोनेंट, इन पर भी प्रतिक्रिया दे सकता है पेज लाइफ़साइकल इवेंट, जैसे कि show() और hide().

Component({
  properties: {
    name: {
      type: String,
      value: "swan",
    },
  },
  data: {
    age: 1,
  },
  methods: {
    tap: function () {},
  },
  lifetimes: {
    attached: function () {},
    detached: function () {},
    created: function () {},
    ready: function () {},
  },
  pageLifetimes: {
    show: function () {},
    hide: function () {},
  },
});

इसके बाद, कस्टम कॉम्पोनेंट को index.json में इंपोर्ट किया जा सकता है. इंपोर्ट की कुंजी से ही नाम तय होता है (यहां: "custom") बताया गया है कि इसके बाद कस्टम कॉम्पोनेंट का इस्तेमाल index.swan में किया जा सकता है.

{
  "usingComponents": {
    "custom": "/components/custom/custom"
  }
}
<view>
  <custom name="swanapp"></custom>
</view>

स्वीकार की गई

इस लेख की समीक्षा इन्होंने की है जो मेडली, कायस बास्क, मिलिका मिहाजलीजा, ऐलन केंट, और कीथ गु॰