Inequality
v-if
asks the question “Should I render the component I am assigned to?” When its condition returns true
, the component is displayed. Checking for equality in the previous article worked well for components designed for a specific state of an interface. For example: the Newsfeed container is shown only when currentScreen
is equal to 'Newsfeed'
.
Sometimes, however, you need a component to be shown in all states except for one. Let’s assume you need to hide the header that shows the title of the current view when Profile is selected:
In this case, the condition is “when currentScreen
is not equal to 'Profile'
”. To hide the header properly you need to render it conditionally by checking for inequality:
<div v-if="currentTab !== 'Profile'">{{currentTab}}</div>
The statement can be read as “show the container only if the value of currentTab
is not equal to 'Profile'
.”
!==
is a boolean operator that compares the value on the left to the value on the right, returns true
if they are not equal, and returns false
if they are. As a result of this operation, the component above is rendered when currentTab
is 'Newsfeed'
, 'Explore'
, or any other value you assign to it, but it is hidden when currentTab
is 'Profile'
.
Practice
Color palette v2
Add indication of the selected color by showing a hole on all non-selected buttons:
- Fork your result of the Color palette task from the Conditional rendering article. You can also fork the one from the article.
- Add holes to all color picker buttons. A hole is essentially a smaller rounded container with a white background centered in the button.
- Add conditions to all holes so that they are rendered if the selected color is not the one they are placed within.
- As a result, all non-selected buttons will be outlined, and the selected one will be filled.
Tabs v2
Recreate the prototype from this article, and add a new tab:
- Fork your result of the Tabs task in the Conditional rendering article. You can also fork the one from the article.
- Add
v-if
to the header toso that the header will be rendered whencurrentTab
is not'Profile'
. - Add a new tab, Newsfeed, to the nav bar with a click event listener that changes the value of
currentTab
to'Notifications'
. - Add a new content container with conditional rendering. It must be displayed if the Notitications tab is selected. The content of this view is up to you—feel free to copy and paste placeholders from other views.
- As a result, you should have a prototype with 4 tabs. The header with the name must be hidden when the Profile view is shown.