Ember.js তে ভিউ বনাম উপাদানগুলি


143

আমি ember.js শিখছি, এবং আমি একটি ভিউ এবং উপাদানগুলির মধ্যে পার্থক্য বোঝার চেষ্টা করছি। আমি উভয়ই পুনরায় ব্যবহারযোগ্য উপাদানগুলি তৈরির একটি উপায় হিসাবে দেখছি।

মতামত নিয়ে এমবারের ওয়েবসাইট থেকে:

এমবার.জেএস এ দেখা সাধারণত নিম্নলিখিত কারণে তৈরি করা হয়:
-যখন আপনার ব্যবহারকারীর ইভেন্টগুলির পরিশীলিত হ্যান্ডলিংয়ের দরকার হয়
- আপনি যখন পুনরায় ব্যবহারযোগ্য উপাদান তৈরি করতে চান

উপাদানগুলিতে অ্যাম্বারের ওয়েবসাইট থেকে:

একটি উপাদান হ'ল একটি কাস্টম এইচটিএমএল ট্যাগ যার আচরণ আপনি জাভাস্ক্রিপ্ট ব্যবহার করে প্রয়োগ করেছেন এবং যার উপস্থিতি আপনি হ্যান্ডলেবার টেম্পলেট ব্যবহার করে বর্ণনা করেছেন। এগুলি আপনাকে পুনরায় ব্যবহারযোগ্য নিয়ন্ত্রণগুলি তৈরি করতে দেয় যা আপনার অ্যাপ্লিকেশনটির টেমপ্লেটগুলিকে সহজ করতে পারে।

সুতরাং একটি ভিউ এবং একটি উপাদান মধ্যে প্রধান পার্থক্য কি? এবং এমন সাধারণ উদাহরণটি কী হবে যেখানে আমি কোনও উপাদান এবং তার বিপরীতে কোনও ভিউ ব্যবহার করতে পছন্দ করব?

উত্তর:


170

Ember.View

একটি এমবার.ভিউ বর্তমানে আপনার জন্য ডাব্লু 3 সি দ্বারা নির্মিত ট্যাগগুলিতে সীমাবদ্ধ। তবে আপনি যদি নিজের অ্যাপ্লিকেশন-নির্দিষ্ট এইচটিএমএল ট্যাগগুলি সংজ্ঞায়িত করতে চান এবং তারপরে জাভাস্ক্রিপ্ট ব্যবহার করে তাদের আচরণ বাস্তবায়ন করতে চান? আপনি এটি একটি এমবার.ভিউ দিয়ে আসলে করতে পারবেন না ।

Ember.Component

ঠিক এটিই আপনাকে উপাদানগুলি করতে দেয়। আসলে, এটি এত ভাল ধারণা যে ডাব্লু 3 সি বর্তমানে কাস্টম এলিমেন্টস স্পেসে কাজ করছে ।

অ্যাম্বারের উপাদানগুলির বাস্তবায়ন যতটা সম্ভব ওয়েব উপাদানগুলির স্পেসিফিকেশনের নিকটবর্তী হওয়ার চেষ্টা করে। কাস্টম উপাদানগুলি ব্রাউজারগুলিতে সর্বদা উপলব্ধ হয়ে গেলে আপনি সহজেই আপনার এম্বার উপাদানগুলি ডাব্লু 3 সি স্ট্যান্ডার্ডে মাইগ্রেট করতে সক্ষম হন এবং সেগুলি নতুন ফ্রেমওয়ার্কগুলিও ব্যবহারযোগ্য হতে পারে যা নতুন মান গ্রহণ করেছে।

এটি আমাদের কাছে এত গুরুত্বপূর্ণ যে আমাদের উপাদানগুলির প্রয়োগগুলি ওয়েব প্ল্যাটফর্মের রোডম্যাপের সাথে মেলে তা নিশ্চিত করার জন্য আমরা মানক সংস্থাগুলির সাথে ঘনিষ্ঠভাবে কাজ করছি।

আরও লক্ষণীয় গুরুত্বপূর্ণ যে একটি এমবার.কোম্পোন্টটি আসলে একটি এমবার.ভিউ (একটি সাবক্লাস) তবে এটি সম্পূর্ণ বিচ্ছিন্ন । তার টেমপ্লেট সম্পত্তির এক্সেস যেতে দৃশ্য বস্তু এবং ক্রিয়া মুখে পড়তে লক্ষ্য করা হয় দৃশ্য অবজেক্ট। পার্শ্ববর্তী contextবা বাহ্যিক কোনও controller প্রাসঙ্গিক তথ্য প্রবেশের কোনও অ্যাক্সেস নেই , যা কোনও এমবারের ক্ষেত্রে হয় না iew দেখুন যা এর আশেপাশের নিয়ামকের কাছে অ্যাক্সেস রয়েছে, উদাহরণস্বরূপ কোনও দৃশ্যের ভিতরে আপনি এমন কিছু করতে পারেন this.get('controller')যা আপনাকে দেবে নিয়ামক বর্তমানে দেখার সাথে যুক্ত।

সুতরাং একটি ভিউ এবং একটি উপাদান মধ্যে প্রধান পার্থক্য কি?

সুতরাং, এই উপাদানগুলির পাশাপাশি মূল পার্থক্য আপনাকে নিজের নিজস্ব ট্যাগ তৈরি করতে দেয় এবং ভবিষ্যতে যখন কাস্টম এলিমেন্টগুলি পাওয়া যায় সেগুলি অন্য ফ্রেমওয়ার্কগুলিতে যে উপাদানগুলি কাস্টম উপাদানগুলিকে সমর্থন করবে সেগুলি স্থানান্তর / ব্যবহার করতে পারে, এটি হ'ল কোনও সময়ে একটি অ্যাম্বার উপাদান রয়েছে নির্দিষ্ট প্রয়োগের ক্ষেত্রে নির্ভর করে একটি দৃশ্য কিছুটা অচল করে দেবে।

এবং এমন সাধারণ উদাহরণটি কী হবে যেখানে আমি কোনও উপাদান এবং তার বিপরীতে কোনও ভিউ ব্যবহার করতে পছন্দ করব?

উপরের বিষয়টি অনুসরণ করা আপনার ব্যবহারের ক্ষেত্রে পরিষ্কারভাবে নির্ভর করে। তবে থাম্বের নিয়ম হিসাবে, আপনার চারপাশের নিয়ামক ইত্যাদির জন্য যদি আপনার নিজের ভিউ অ্যাক্সেসের প্রয়োজন হয় তবে একটি অ্যামবার.ভিউ ব্যবহার করুন , তবে আপনি যদি ভিউটি বিচ্ছিন্ন করতে চান এবং কেবল তথ্যটি প্রাসঙ্গিক-অজ্ঞাত তৈরিতে কাজ করতে চান তবে এবং আরও অনেক বেশি পুনরায় ব্যবহারযোগ্য, একটি এমবার.কোম্পোন্ট ব্যবহার করুন ।

আশা করি এটা সাহায্য করবে.

হালনাগাদ

রোড টু এম্বার ২.০ প্রকাশের সাথে সাথে আপনি এখন বেশিরভাগ ক্ষেত্রে ভিউয়ের পরিবর্তে উপাদানগুলি ব্যবহার করতে উত্সাহিত হন।


1
উপাদানগুলি সম্পর্কে আমার একমাত্র উদ্বেগ যখন তারা জটিল হয়। আমি কীভাবে যুক্তির অংশটি রেন্ডারিং অংশ থেকে আলাদা করতে পারি তা এখনও জানি না। আমি নিয়মিত দর্শন করি, আপনার এই বিচ্ছেদ রয়েছে, এবং যুক্তিটি নিয়ামকের মধ্যে রাখতে পারেন, তবে উপাদানটি সহ আমি বলতে চাই যে আপনি খুব জটিল, এবং সম্ভবত এটির মধ্যে বিশাল অগোছালোতা শেষ করবেন having আপনি কি জানেন যে উপাদানগুলির জন্য একটি নিবেদিত নিয়ামক-জাতীয় সংজ্ঞা দেওয়া সম্ভব কিনা? অথবা সম্ভবত উপাদানগুলি কেবল জটিল গ্রাফিকাল উপাদানগুলি পরিচালনা করার উদ্দেশ্যে নয়।
sly7_7

3
@ sly7_7, হ্যাঁ আমি আপনার বক্তব্য পেয়েছি তবে আমি একটি উপাদানটিকে একটি কালো বাক্স হিসাবে ভাবব, কেবল এটি প্রবেশ করা তথ্যের উপর ভিত্তি করে আচরণ করবে And একটি উত্সর্গীকৃত নিয়ামক নিখুঁত ধারণা তৈরি করতে পারে, এবং এটির কাজ করার একটি উপায় হ'ল যদি উপাদানগুলি এতে যুক্তিযুক্ত হয়ে উঠতে পারে তবে আমি জানি যতদূর জানি নকশা অনুসারে উপাদানগুলি এমবারের ধারকের অংশ নয় তবে ভবিষ্যতে এটি পরিবর্তিত হতে পারে ঠিক এরকম কিছু সমাধান করুন। ভাল পয়েন্ট যাইহোক!
স্বজ্ঞাত

2
কোনও বাঁধাই কোনও উপাদানগুলির বাইরে যেতে পারে ? আইই, কোনও উপাদানটির ব্লক ফর্মের সাথে ব্লকের উপাদানগুলি উপাদানটির বৈশিষ্ট্যগুলিকে আবদ্ধ করতে পারে, বা এই ক্ষেত্রে আমার কোনও দৃষ্টিভঙ্গি ব্যবহার করা উচিত?
মাইকেল জনস্টন

2
আহ, হ্যাঁ তারা পারে {{view.xxxx}}একটি দৃশ্যে যেমন ভিউয়ের মতো কাজ করে।
মাইকেল জনস্টন

এই বিষয়ে টম ডেলের মন্তব্য: ember.zone/the-confusion-around-ember-views-and-components/…
অক্ষয় রাওয়াত

17

উত্তরটি সহজ: উপাদান ব্যবহার করুন

আগস্ট ২০১৩-এ রেকর্ড করা একটি প্রশিক্ষণের ভিডিও অনুসারে, ইয়াহুদা ক্যাটস এবং টম ডেল (অ্যাম্বার কোর টিম মেম্বার্স) শ্রোতাদের বলেছিলেন যে আপনি যদি কাঠামোর বিকাশকারী না হন তবে দৃষ্টিভঙ্গি ব্যবহার করবেন না। তারা হ্যান্ডলবারগুলিতে প্রচুর পরিমাণে উন্নতি করেছে এবং উপাদানগুলি চালু করেছে, সুতরাং আর দেখার প্রয়োজন নেই। ভিউগুলি Views {#if if} এবং {{আউটলেট} like এর মতো জিনিসগুলিকে পাওয়ার জন্য অভ্যন্তরীণভাবে ব্যবহৃত হয়}

উপাদানগুলি ব্রাউজারে তৈরি করা হবে এমন ওয়েব উপাদানগুলির মানটি নিবিড়ভাবে অনুকরণ করে, তাই অ্যাম্বার উপাদানগুলি তৈরি করতে আরামদায়ক হয়ে উঠার পক্ষে প্রচুর পার্শ্ব সুবিধা রয়েছে।

আপডেট 2014-11-27

দেখার পরিবর্তে উপাদানগুলি ব্যবহার করা এখন আরও বেশি গুরুত্বপূর্ণ, কারণ কোনও রুট প্রবেশের সময় নিয়ামক / দৃশ্যের পরিবর্তে এম্বার ২.০ রাউটেবল উপাদান ব্যবহার করবে। আপনার অ্যাপটির ভবিষ্যতের প্রমাণের জন্য, ভিউগুলি থেকে দূরে থাকাই ভাল।

সূত্র:


5
"আপনার যদি মনে হয় আপনার একটি ভিউ ব্যবহার করা দরকার, পরিবর্তে কোনও উপাদান ব্যবহার করুন" " এটি ভয়ানক পরামর্শ, এবং উপাদানগুলির সাথে জড়িত বিচ্ছিন্নতা সম্পর্কে বোঝার অভাবকে বিশ্বাসঘাতকতা করে।
জেএমসিডি

@ জেএমসিডি, যদিও এই মন্তব্যটি ফ্রেমওয়ার্ক বিকাশকারীরা তাদের নিজেরাই এসেছিল, আমি এটিকে প্রকাশ করেছি।
জনি ওশিকা

2
আমি উত্সটি পেয়েছি: গ্যাসলাইট ভিডিও প্রশিক্ষণ, ভিডিও 10.3 উপাদান প্রশ্নোত্তর @ 26 মিটার চিহ্ন। টম বলেছেন: '' যেহেতু এই উদাহরণগুলি লেখা হয়েছিল, ... আমরা সেই উপাদানগুলি যুক্ত করেছি [যখন] সেই উদাহরণগুলি লেখার সময় ছিল না। সাধারণভাবে আমি বলব ভিউজ এমন কিছু নয় যা আমরা বেশিরভাগ বিকাশকারীদের লেখার জন্য প্রত্যাশা করব, তারা এই মুহুর্তে একটি অভ্যন্তরীণ বই-রক্ষার অবজেক্ট '
জেএমসিডি

2
@ জেএমসিডি, সেই ভিডিওটিতে @ 26:15 এ টম বলেছেন "মূলত ভিউ ব্যবহার করবেন না"। এছাড়াও, যদি আপনি একই ভিডিওতে 30 মিটারে ঝাঁপ দেন, ইয়াহুদা কাটজ বলেছেন: "দেখুনটি মূলত একটি অভ্যন্তরীণ বাস্তবায়নের বিশদ ... আপনি একটি ভিউ ব্যবহার করতে পারেন তবে আপনি একটি কাঠামো বিকাশকারী instead আপনার পরিবর্তে যে কোনও একটি জিনিস ব্যবহার করা উচিত যা আমরা আপনার জন্য তৈরি করেছি যা ভিউ ব্যবহার করে এবং দেখার সবচেয়ে নিকটে থাকা তবে এর মধ্যে আরও ভাল শব্দার্থবিজ্ঞান থাকে সেগুলি হল কম্পোনেন্ট। যা কিছু আগে আপনি একটি ভিউ ব্যবহার করতে পারতেন, উপাদানটি ঠিক আছে ""
জনি ওশিকা

5

এটি এখন যেমন দাঁড়িয়েছে - v2.xবর্তমান স্থিতিশীল প্রকাশ হওয়ায় - মতামতগুলি পুরোপুরি হ্রাস করা হয়েছে। বলা হয় এমবার ২.০ এপিআই থেকে দেখা সরিয়ে নেওয়া হচ্ছে

সুতরাং, {{view}}এমবার ২.০-তে কীওয়ার্ড ব্যবহার করা একটি দৃ trigger়তা উত্সাহিত করবে:

দৃ Fa়তা ব্যর্থ: {{view}}এম্বার ২.০ এ ব্যবহার করা বা এটির ভিত্তিতে কোনও পাথ সরানো হয়েছে

যদি আপনাকে অ্যাম্বার ২.০ এ মতামত ব্যবহার করতে হয় তবে আপনি অ্যাম্বার-লেগ্যাসি-ভিউ অ্যাডন ব্যবহার করতে পারেন , যা সংস্করণ ২.৪ অবধি অ্যাম্বারের সাথে সামঞ্জস্যপূর্ণ থাকবে

সুতরাং, সংক্ষেপে - উপাদানগুলি হ'ল উপস্থিত (দর্শনগুলি সরানো হচ্ছে) এবং ভবিষ্যত - তারা নিয়ামকগুলিও প্রতিস্থাপন করবে। দেখুন routable উপাদান জন্য RFC

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.