<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: PARMITA UPADHYAY</title>
    <description>The latest articles on DEV Community by PARMITA UPADHYAY (@parmita17).</description>
    <link>https://dev.to/parmita17</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1094958%2Fc452381f-ce63-46ca-b0fe-f83594aecfb8.png</url>
      <title>DEV Community: PARMITA UPADHYAY</title>
      <link>https://dev.to/parmita17</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/parmita17"/>
    <language>en</language>
    <item>
      <title>useState Hook in React</title>
      <dc:creator>PARMITA UPADHYAY</dc:creator>
      <pubDate>Tue, 12 Sep 2023 15:35:33 +0000</pubDate>
      <link>https://dev.to/parmita17/usestate-hook-in-react-296o</link>
      <guid>https://dev.to/parmita17/usestate-hook-in-react-296o</guid>
      <description>&lt;p&gt;To handle multiple states using the useState hook in react, you can call the useState function multiple times, once for each state you want to manage. Here's an example:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;import { useState } from 'react';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function MyComponent(props){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const [count,setCount]  = useState(0);&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const [text, setText] = useState('');&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function handleIncrement(){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;setCount(count + 1);&lt;/code&gt;&lt;br&gt;
&lt;code&gt;}&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function handleTextChange(event){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;setText(event.target.value);&lt;/code&gt;&lt;br&gt;
&lt;code&gt;}&lt;/code&gt;&lt;br&gt;
&lt;code&gt;return (&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;P&amp;gt;Count : {count}&amp;lt;p&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;button onClick = {handleIncrement}&amp;gt;Increment&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;br /&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;input type="text" value= {text} onChange ={handleTextChange}/&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;p&amp;gt; Text: {text}&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;);}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this example , we're managing two states using &lt;code&gt;useState:count&lt;/code&gt; and &lt;code&gt;text&lt;/code&gt;. We're also defining two functions : &lt;code&gt;handleIncrement&lt;/code&gt;, which updates the &lt;code&gt;count&lt;/code&gt; state when a button is clicked, and &lt;code&gt;handleTextChange&lt;/code&gt; , which updates the &lt;code&gt;text&lt;/code&gt; state when the text input changes.&lt;br&gt;
By calling &lt;code&gt;useState&lt;/code&gt; twice , we're creating two independent pieces of state that can be managed separately. We're also using destructing to assign the current value of each state and its corresponding setter and its corresponding setter function to separate variables(&lt;code&gt;count&lt;/code&gt; and &lt;code&gt;setCount&lt;/code&gt;, and &lt;code&gt;text&lt;/code&gt; and &lt;code&gt;setText&lt;/code&gt;).&lt;br&gt;
Overall, using multiple useState hooks can help you manage multiple pieces of state in a clean and organized way.&lt;br&gt;
&lt;strong&gt;Other Alternative:&lt;/strong&gt;&lt;br&gt;
We can also manage multiple states using a single useState hook by passing an object as the initial state and using destructing to access individual state variables and their corresponding update functions.&lt;br&gt;
Here's an example:&lt;br&gt;
&lt;code&gt;import {useState} from 'react';&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function MyComponent(props){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;const[state, setState] = useState({count: 0, text: ''});&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function handleIncrement(){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;setState(&lt;/code&gt;&lt;br&gt;
&lt;code&gt;prevState =&amp;gt; ({ ...prevState, count: prevState.count + 1})&lt;/code&gt;&lt;br&gt;
&lt;code&gt;);}&lt;/code&gt;&lt;br&gt;
&lt;code&gt;function handleTextChange(event){&lt;/code&gt;&lt;br&gt;
&lt;code&gt;setState(&lt;/code&gt;&lt;br&gt;
&lt;code&gt;prevState =&amp;gt;({ ...prevState, text: event.target.value}&lt;/code&gt;&lt;br&gt;
&lt;code&gt;));&lt;/code&gt;&lt;br&gt;
&lt;code&gt;}&lt;/code&gt;&lt;br&gt;
&lt;code&gt;return (&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;p&amp;gt; Count: {state.count}&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;button onClick ={handleIncrement}&amp;gt;Increment&amp;lt;/button&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;br/&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;input type="text"&lt;/code&gt;&lt;br&gt;
&lt;code&gt;value={state.text} onChange ={handleTextChange} /&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;p&amp;gt;Text: {state.text}&amp;lt;/p&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;code&gt;&amp;lt;/div&amp;gt;);}&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;In this example, we're still managing two pieces of state(&lt;code&gt;count&lt;/code&gt; and &lt;code&gt;text&lt;/code&gt;), but we're using a single &lt;code&gt;useState&lt;/code&gt; hook to initialize both states as properties of an object(&lt;code&gt;state&lt;/code&gt;). We're also using destructing to access individual state variables(&lt;code&gt;count&lt;/code&gt; and &lt;code&gt;text&lt;/code&gt;) and their corresponding update functions(&lt;code&gt;setState&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;To update a piece of state, we're using the functional update form of &lt;code&gt;setState&lt;/code&gt;, which takes a callback function that receives the previous state as an argument and returns the new state. We're spreading the previous state using the spread operator(&lt;code&gt;...prevState&lt;/code&gt;) to create a new object with all the previous state properties, and then updating the property we want to change(&lt;code&gt;count&lt;/code&gt; or &lt;code&gt;text&lt;/code&gt;) using object property shorthand.&lt;/p&gt;

&lt;p&gt;Using a single &lt;code&gt;useSate&lt;/code&gt; hook to manage multiple pieces of state can be a convenient way to keep related state together and reduce boilerplate code. However, it can also make code more complex and harder to read, especially if you have many pieces of state or complex state updates. So it's up to you to decide which approach works best for you for your specific use case.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>What is API &amp; REST API ?</title>
      <dc:creator>PARMITA UPADHYAY</dc:creator>
      <pubDate>Sun, 10 Sep 2023 18:00:01 +0000</pubDate>
      <link>https://dev.to/parmita17/what-is-api-rest-api--3noe</link>
      <guid>https://dev.to/parmita17/what-is-api-rest-api--3noe</guid>
      <description>&lt;p&gt;An API, or Application Programming Interface, is set of rules i.e. protocols for building and interacting with software application.&lt;br&gt;
It allows different software systems to communicate with each other, enabling them to share data and functionality.&lt;br&gt;
An example of an API is the Facebook API, which allows developers to access and interact with functionality of the Facebook platform such as posting status updates, retrieving user information, and managing ad campaigns. Another example is the Google Maps API, which allows developers to embed maps and location-based functionality in their own websites and apps.&lt;br&gt;
&lt;strong&gt;How an API Works:&lt;/strong&gt;&lt;br&gt;
APIs acts as a bridge between applications and web servers, processing data transfer between systems. When a client application initiates an API call, also known as request, it is sent to the web server via the API's Uniform Resource Identifier(URI) and includes a request verb, headers and sometimes a request body. The API then processes the request and may make a call to an external program or web server for the requested information.&lt;br&gt;
The server responds with the requested data, which the API then forwards to the initial requesting application. This process of requests and responses all happens through the API. Unlike user interfaces which are designed for human use, APIs are designed for use by computers or applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;REST API: Representational State Transfer&lt;/strong&gt;&lt;br&gt;
REST is a type of web architecture and a set of constraints to be used when creating web services. RESTful API is API that conforms to the REST architectural style and constraints, it is typically used to make requests to retrieve or update data on a web server. A RESTful API uses HTTP requests to POST(create), PUT(update), GET(read), and DELETE(delete) data. A RESTful API also returns a response in a standard format, typically JSON or XML, and uses standard HTTP status codes to indicate the status of the request. RESTful APIs are popular because they are simple to understand and easy to use, and they work well with the HHTP protocol that the internet is built on. Additionally, RESTful APIs are often faster and more lightweight than their SOAP(Simple Object Access Protocol) counterparts because they use smaller message formats. RESTful API's have become a popular way for systems to expose databases through HTTP(s) following CRUD operations(Create, Read, Update, Delete), and return JSON or XML as responses, it's also widely used in microservices, mobile and web applications, IoT&lt;br&gt;
and many more.&lt;br&gt;
REST requires that a client make a request to the server in order to retrieve or modify data on the server.&lt;br&gt;
&lt;strong&gt;A request generally consists:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;An HTTP verb, which defines what kind of operation to perform.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A header, which allows the client to pass along information about the request.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A path to a resource.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;An optional message body containing data.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>api</category>
    </item>
    <item>
      <title>How to become a Bug Bounty Hunter</title>
      <dc:creator>PARMITA UPADHYAY</dc:creator>
      <pubDate>Thu, 07 Sep 2023 07:42:47 +0000</pubDate>
      <link>https://dev.to/parmita17/how-to-become-a-bug-bounty-hunting-40jd</link>
      <guid>https://dev.to/parmita17/how-to-become-a-bug-bounty-hunting-40jd</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;br&gt;
With cyber threats becoming increasingly sophisticated, organizations and individuals are seeking skilled bug hunters to identify vulnerabilities before malicious hackers can exploit them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Understand the basics of bug Hunting&lt;/strong&gt;&lt;br&gt;
The first step towards becoming a bug hunter is to grasp the fundamentals. Bug hunting involves actively seeking vulnerabilities in software application or systems. As an ethical hacker, your objective is to identify and report the weakness to the responsible parties, allowing them to fix the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Develop a Strong Foundation in Networking &amp;amp; Programming&lt;/strong&gt;&lt;br&gt;
 A strong understanding of network protocols and programming languages is indispensable for success in bug hunting. Familiarize yourself with languages like python, JavaScript, C/C++ , along with the concepts of HTML,CSS and Databases. Additionally, grasp the workings of TCP/IP , DNS,HTTP, and other fundamental networking protocols to navigate various systems effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Learn about Web Application Security&lt;/strong&gt;&lt;br&gt;
Web applications are prime targets for malicious actors in today's landscape. Familiarize yourself with common web application vulnerabilities like Cross-Site Scripting(XSS) , SQL injection , Cross-Site Request Forgery(CSRF) and more. Explore security testing methodologies, tools and fundamentals such as Burp Suite ,OWASP Zap and Nmap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Stay Updated on the Security Trends&lt;/strong&gt;&lt;br&gt;
Staying up to date with latest trends and emerging threats is vital in dynamic world of cybersecurity. Follow reputable security blogs, podcast and websites. Engage with the cybersecurity community through forums, social media, and bug bounty platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Participate in Bug Bounty Programs&lt;/strong&gt;&lt;br&gt;
Bug bounty programs offer an excellent platform for showcasing your skills and earning rewards. Platforms like HAckerOne, Bugcrowd , HackTheBox , TryHackme and synack connect ethical hackers with organisations willing to reward them for discovering bugs.&lt;br&gt;
 &lt;strong&gt;what is Responsible disclosure?&lt;/strong&gt;&lt;br&gt;
Responsible disclosure is the process of reporting vulnerabilities to the affected organization or vendor in a way that minimizes harm. This can be done by following the organization's vulnerability disclosure policy , or by contacting the organization directly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6. Work on Personal Projects&lt;/strong&gt;&lt;br&gt;
Enhance your bug-hunting abilities by working on personal Projects. Build a secure web application and attempt to identify vulnerability on your own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7. Pursue Relevant Certifications&lt;/strong&gt;&lt;br&gt;
Strengthen your credibility as a bug hunter by obtaining industry recognized certifications. Certifications like Ethical Hacker(CEH) , Offensive Security (OSCP) and web application penetration tester (WAPT) demonstrate your expertise and dedication to ethical hacking.&lt;/p&gt;

&lt;p&gt;With the right knowledge, technical skills, and ethical mindset , you can embark on an exciting journey as a bug hunter.&lt;/p&gt;

</description>
      <category>bug</category>
      <category>cybersecurity</category>
      <category>networking</category>
      <category>bounty</category>
    </item>
    <item>
      <title>All about FLEX</title>
      <dc:creator>PARMITA UPADHYAY</dc:creator>
      <pubDate>Tue, 05 Sep 2023 19:35:20 +0000</pubDate>
      <link>https://dev.to/parmita17/all-about-flex-33na</link>
      <guid>https://dev.to/parmita17/all-about-flex-33na</guid>
      <description>&lt;p&gt;Display : The display enables flex for all children(inner components of html).&lt;br&gt;
By doing this the direct child elements of a flex container automatically becomes flexible (flex) items.&lt;/p&gt;

&lt;p&gt;Flex-direction --&amp;gt;Establishes the main axis.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flex-direction : row -&amp;gt;this is default property of flex,all items will appear in one single row.&lt;/li&gt;
&lt;li&gt;flex-direction : row-reverse -&amp;gt; this acts same as row but in opposite direction.&lt;/li&gt;
&lt;li&gt;flex-direction : column -&amp;gt; all elements appear in single column.&lt;/li&gt;
&lt;li&gt;flex-direction : column-reverse -&amp;gt; as name suggest acts like column  but in opposite direction i.e. form bottom to top.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;flex-wrap --&amp;gt; wrap items if they can't all be made to fit on one line.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;flex-wrap : nowrap -&amp;gt; as name suggest no wrapping is done.&lt;/li&gt;
&lt;li&gt;flex-wrap : wrap -&amp;gt; content that doesn't fit in single line will be moved to next line.
&lt;/li&gt;
&lt;li&gt;flex-wrap : wrap-reverse -&amp;gt; the content fits in reverse order i.e. from last line to second last line.
&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Justify-content --&amp;gt; Attempts to distribute extra space on the main axis i.e. horizontal axis of webpage.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;justify-content : flex-start -&amp;gt; all the elements will be on left side with no spaces in between.&lt;/li&gt;
&lt;li&gt;justify-content : flex-end -&amp;gt; all the elements will be on the right side with no spaces in between.&lt;/li&gt;
&lt;li&gt;justify-content : centre -&amp;gt; all the elements will be placed at the centre.&lt;/li&gt;
&lt;li&gt;justify-content : space-between -&amp;gt; as the name suggests space left in entire web page/ view port is equally divided between the elements i.e. any two elements will have same space between them.&lt;/li&gt;
&lt;li&gt;justify-content : space-around -&amp;gt; it is same as space-between but space is also present at ends in same amount as in between.&lt;/li&gt;
&lt;li&gt;justify-content : space-evenly -&amp;gt; same is divided and alloted between element and remaining space in present at the two left and right corners.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Align-items --&amp;gt; Determines how items are laid out on the cross axis i.e. vertically&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;align-items :flex-start -&amp;gt; all items are horizontally  at top.&lt;/li&gt;
&lt;li&gt;align-items :flex-end -&amp;gt;all items are horizontally  at bottom.&lt;/li&gt;
&lt;li&gt;align-items :flex-center -&amp;gt; all items are horizontal and placed at center.&lt;/li&gt;
&lt;li&gt;align-items :baseline -&amp;gt; all are placed at same level from a same reference line.&lt;/li&gt;
&lt;li&gt;align-items :stretch -&amp;gt; all items are stretch from top to bottom.
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Align-content --&amp;gt; Only has an effect with more than one line of content, can be used with flex-wrap.&lt;br&gt;
It also has same properties as start, end, center, space-between, space-around, stretch.&lt;/p&gt;

&lt;p&gt;children &lt;br&gt;
Order --&amp;gt; allows you to explicitly set the order you want each child to appear in.&lt;br&gt;
order: integer&lt;/p&gt;

&lt;p&gt;flex-grow --&amp;gt; allows you to determine how each child is allowed to grow as a part of a whole&lt;/p&gt;

&lt;p&gt;flex-basis --&amp;gt; defines the size of an element before remaining space is distributed.&lt;br&gt;
e.g. first item 20%,second item 40%.&lt;/p&gt;

&lt;p&gt;flex-shrink --&amp;gt; allows an item to shrink if necessary. Only really useful with a set size or flex-basis.&lt;/p&gt;

&lt;p&gt;align-self --&amp;gt; sets alignment for individual item.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>css</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Learn about knockoutJS</title>
      <dc:creator>PARMITA UPADHYAY</dc:creator>
      <pubDate>Mon, 04 Sep 2023 18:46:36 +0000</pubDate>
      <link>https://dev.to/parmita17/learn-about-knockoutjs-23ok</link>
      <guid>https://dev.to/parmita17/learn-about-knockoutjs-23ok</guid>
      <description>&lt;p&gt;Knockout is a library written in JavaScript and based on MVVM (MODEL VIEW VIEWMODEL) pattern. It helps in building rich and responsive websites. It works with any framework and handles data driven interfaces.&lt;br&gt;
&lt;strong&gt;KO&lt;/strong&gt; is the abbreviated name of Knockout. The KO library file is small and light-weight.&lt;br&gt;
 Knockout. js creates a direct connection between the ViewModel and the view, which helps to detect changes to the underlying model and automatically update the right element of the UI.&lt;br&gt;
Syntax :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8XMVqzRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mfrm79xp7dtang9rq40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8XMVqzRj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4mfrm79xp7dtang9rq40.png" alt="Image description" width="494" height="69"&gt;&lt;/a&gt;&lt;br&gt;
View Model :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--kWD2-Ud1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tj0xmztoxhc1mwqt5r6u.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--kWD2-Ud1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tj0xmztoxhc1mwqt5r6u.png" alt="Image description" width="343" height="140"&gt;&lt;/a&gt;&lt;br&gt;
OUTPUT :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--xtQebCpk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4d0bailwwglpvmn3wf8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtQebCpk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m4d0bailwwglpvmn3wf8.png" alt="Image description" width="359" height="92"&gt;&lt;/a&gt;&lt;br&gt;
Discussion for the Program:&lt;br&gt;
VIEW:&lt;br&gt;
We have an input box: What is your Name. This variable is initialized with value What is your Name View Model, i.e.,&lt;br&gt;
First Line indicates that we are inputting data using the data-bind attribute, i.e. we are using HTML controls, to make the data editable but this won’t update the data at the time of showing Name on Screen.&lt;br&gt;
Second Line is just printing Name on the Screen, this is how we are binding values from View Model to HTML elements using ‘data-bind’ attribute in the body section. Here, ‘Name’ refers to the View Model variable.&lt;br&gt;
VIEW MODEL:&lt;br&gt;
First Line is just a name to a function (This is how functions are written).&lt;br&gt;
The Third Line is assigning to View Model properties.&lt;br&gt;
The fifth Line is the binding View Model to View.&lt;/p&gt;

&lt;p&gt;Nowadays developers prefer using Vue.js...&lt;br&gt;
but these are some advantages of using knockout.JS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Feasible to connect anytime with the UI elements in the data model.&lt;/li&gt;
&lt;li&gt;Ensures application of business rules, data security and more control on the webpage.&lt;/li&gt;
&lt;li&gt;Offers referential integrity and many validation features in regard to the workflow for additional
security.&lt;/li&gt;
&lt;li&gt;Supports event-driven programming model and offers 100% customization.&lt;/li&gt;
&lt;li&gt;Create complex and dynamic data models with ease.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
