Back to "हाइममएक्स तथा आउचक के साथ पृष्ठ जोड़ने के लिए. टैग- मददर के साथ नीटी कोर"

This is a viewer only at the moment see the article on how this works.

To update the preview hit Ctrl-Alt-R (or ⌘-Alt-R on Mac) or Enter to refresh. The Save icon lets you save the markdown file to disk

This is a preview from the server running through my markdig pipeline

ASP.NET HTMX

हाइममएक्स तथा आउचक के साथ पृष्ठ जोड़ने के लिए. टैग- मददर के साथ नीटी कोर

Friday, 13 September 2024

परिचय

अब जबकि मेरे पास गृह पृष्ठ पोस्टों का एक गुच्छा हो रहा था......तो मैंने ब्लॉग पोस्टों के लिए एक paning सुविधा जोड़ने का निर्णय किया.

इस ब्लॉग पोस्टों को एक त्वरित तथा कुशल साइट बनाने के लिए पूर्ण कैशिंग जोड़ने के साथ यह जाता है.

देखें ब्लॉग सेवा स्रोत: कैसे यह लागू किया जाता है के लिए, यह वास्तव में आसान है मैं मेमोरी कीश का उपयोग करना.

[विषय

टैग मददर

मैंने फैसला किया कि मैं एक टैग मददकर्ता का इस्तेमाल करूँगा ताकि वह इन चीज़ों को सही तरीके से इस्तेमाल कर सके । यह paning तर्क को दोहराने का एक महान तरीका है और इसे फिर से बनाने का. यह उपयोग करता है डारेल ओ 'ललललल से paradation टैग सहायक यह परियोजना में एक परमाणु पैकेज के रूप में शामिल है.

तब यह जोड़ा जाता है _दृश्य आयात करता है.

@addTagHelper *,PaginationTagHelper.AspNetCore

टैग मदद करनेवाला

में _ब्लॉगिंग सूची. sclutml आंशिक दृश्य मैं ने निम्न कोड जोड़ दिया कि paning सुविधा देने के लिए.

<pager link-url="@Model.LinkUrl"
       hx-boost="true"
       hx-push-url="true"
       hx-target="#content"
       hx-swap="show:none"
       page="@Model.Page"
       page-size="@Model.PageSize"
       total-items="@Model.TotalItems" ></pager>

यहाँ कुछ उल्लेखनीय बातें:

  1. link-url यह टैग सहायक को स्विचिंग कड़ियों के लिए सही यूआरएल बनाने देता है. घर नियंत्रण इंडेक्स पद्धति में यह उस कार्य के लिए सेट किया जाता है ।
   var posts = blogService.GetPostsForFiles(page, pageSize);
   posts.LinkUrl= Url.Action("Index", "Home");
   if (Request.IsHtmx())
   {
      return PartialView("_BlogSummaryList", posts);
   }

और ब्लॉग नियंत्रक में

    public IActionResult Index(int page = 1, int pageSize = 5)
    {
        var posts = blogService.GetPostsForFiles(page, pageSize);
        if(Request.IsHtmx())
        {
            return PartialView("_BlogSummaryList", posts);
        }
        posts.LinkUrl = Url.Action("Index", "Blog");
        return View("Index", posts);
    }

यह है कि नीचे सेट कर दिया जाता है. यह निश्‍चित करता है कि भेंटन सहायक या तो ऊपरी स्तर विधि के लिए काम कर सकता है ।

एचएसएमएक्स गुण

hx-boost, hx-push-url, hx-target, hx-swap ये सभी HMAX गुण हैं जो HMMX के साथ काम करने की अनुमति देते हैं.

     hx-boost="true"
       hx-push-url="true"
       hx-target="#content"
       hx-swap="show:none"

यहाँ हम उपयोग hx-boost="true" यह प्रोग्रेसन टैग सहायक को स्वीकार करने की अनुमति देता है जिसमें यह सामान्य यूआरएल पीढ़ी है तथा मौजूदा यूआरएल के प्रयोग से किसी भी संशोधन की आवश्यकता नहीं है.

hx-push-url="true" यह सुनिश्चित करने के लिए कि यूआरएल ब्राउज़र के इतिहास में बदला गया है (जो कि पृष्ठों पर सीधे लिंक की अनुमति देता है).

hx-target="#content" यह वह लक्ष्य है जो कि नई सामग्री से बदल दिया जाएगा.

hx-swap="show:none" यहाँ पर छवि के संतृप्ति समायोजन को सेट करें. इस मामले में यह सामान्य 'पाम्प' प्रभाव को रोक देता है जिसे HMMAX सामग्री पर उपयोग करता है.

सीएसएस

मैंने मुख्य शैली भी जोड़े अपने /scss डिरेक्ट्री में मुझे playssssss का उपयोग करने की अनुमति दे रही है prols लिंक के लिए scents.

.pagination {
    @apply py-2 flex list-none p-0 m-0 justify-center items-center;
}

.page-item {
    @apply mx-1 text-black  dark:text-white rounded;
}

.page-item a {
    @apply block rounded-md transition duration-300 ease-in-out;
}

.page-item a:hover {
    @apply bg-blue-dark text-white;
}

.page-item.disabled a {
    @apply text-blue-dark pointer-events-none cursor-not-allowed;
}

नियंत्रक

page, page-size, total-items सजावटी टैग सहायकों का उपयोग panceing लिंक तैयार करने के लिए किया जाता है. इन्हें नियंत्रण से आंशिक दृष्टिकोण में भेज दिया गया है ।

 public IActionResult Index(int page = 1, int pageSize = 5)

ब्लॉग सेवा

यहाँ पृष्ठ तथा पृष्ठ आकार यूआरएल से पास किए गए हैं तथा ब्लॉग सेवा से कुल वस्तुओं की गणना की जाती है.

    public PostListViewModel GetPostsForFiles(int page=1, int pageSize=10)
    {
        var model = new PostListViewModel();
        var posts = GetPageCache().Values.Select(GetListModel).ToList();
        model.Posts = posts.OrderByDescending(x => x.PublishedDate).Skip((page - 1) * pageSize).Take(pageSize).ToList();
        model.TotalItems = posts.Count();
        model.PageSize = pageSize;
        model.Page = page;
        return model;
    }

यहाँ हम कैश से पोस्ट प्राप्त करते हैं, उन्हें तिथि से आदेश देते हैं और फिर पृष्ठ के लिए पोस्ट की सही संख्या लेते हैं ।

कंटेनमेंट

यह साइट के लिए एक सरल अतिरिक्त था लेकिन यह इसे और अधिक प्रयोग करता है । इस साइट में और ज़्यादा जावास्क्रिप्ट जोड़ने के दौरान, HMX संयोजन इस साइट को अधिक प्रतिक्रियाशील महसूस करता है.

logo

©2024 Scott Galloway