VUE3 quick start: using Vue.js instructions to switch tabs
This article aims to help beginners quickly get started with Vue.js 3 and achieve a simple tab switching effect. Vue.js is a popular JavaScript framework that can be used to build reusable components, easily manage the state of your application, and handle user interface interactions. Vue.js 3 is the latest version of the framework. Compared with previous versions, it has undergone major changes, but the basic principles have not changed. In this article, we will use Vue.js instructions to implement the tab switching effect, with the purpose of making readers familiar with the common syntax and concepts of Vue.js.
In the first step, we need to create a Vue instance and then mount it to a DOM element on the HTML page. In Vue.js 3, the way to create a Vue instance is similar to Vue.js 2, just pass an object as a parameter. We also need to declare a data property tabs in the Vue instance, which will contain the tab's title and content.
<div id="app"> <ul> <li v-for="(tab, index) in tabs" :key="index" @click="activeTabIndex = index">{{ tab.title }}</li> </ul> <div v-for="(tab, index) in tabs" :key="index" v-show="activeTabIndex === index">{{ tab.content }}</div> </div> <script> const app = Vue.createApp({ data() { return { tabs: [ { title: 'Tab 1', content: 'This is the content for Tab 1' }, { title: 'Tab 2', content: 'This is the content for Tab 2' }, { title: 'Tab 3', content: 'This is the content for Tab 3' } ], activeTabIndex: 0 } } }) app.mount('#app') </script>
In the above code, we use the v-for directive to traverse the loop tabs array, use the :key directive to set a unique identifier for each element, and the @click directive binds the tab. Click event, when a tab is clicked, its index value is assigned to the activeTabIndex data property. At the same time, use the v-show command to display or hide the corresponding tab content according to the value of activeTabIndex.
Now, we have successfully created a Vue instance and mounted it on the HTML page. Next, we need to write styles to improve the appearance of the tab.
ul { display: flex; list-style: none; padding: 0; background-color: #eee; } li { padding: 10px; cursor: pointer; } li:hover { background-color: #ddd; } li.active { background-color: #fff; } div { padding: 20px; border: 1px solid #ccc; background-color: #fff; }
In the above style, we set some basic styles for the tab list and tab content block, such as background color, border, padding, etc. In addition, we have also defined the :hover and .active styles for the li element of the tab. When the mouse hovers over the tab, the background color will change; when the tab is active, the background color will change to white.
So far, we have completed the basic layout and style of the tab. Finally, we should do some final work in the Vue instance to ensure that tab switching is smooth and correct.
<div id="app"> <ul> <li v-for="(tab, index) in tabs" :key="index" :class="{ active: activeTabIndex === index }" @click="activeTabIndex = index">{{ tab.title }}</li> </ul> <div v-for="(tab, index) in tabs" :key="index" v-show="activeTabIndex === index">{{ tab.content }}</div> </div> <script> const app = Vue.createApp({ data() { return { tabs: [ { title: 'Tab 1', content: 'This is the content for Tab 1' }, { title: 'Tab 2', content: 'This is the content for Tab 2' }, { title: 'Tab 3', content: 'This is the content for Tab 3' } ], activeTabIndex: 0 } }, watch: { activeTabIndex(newValue, oldValue) { console.log(`The active tab index has changed from ${oldValue} to ${newValue}`) } }, mounted() { console.log('Vue app has been mounted to the DOM') } }) app.mount('#app') </script>
In the above code, we use the :class directive to dynamically bind the CSS class of the li element according to the activation state of the tab in order to set the style of the tab. In addition, we also use the watch attribute to monitor changes in activeTabIndex and output the change information on the console. Finally, we use the mounted lifecycle hook function to ensure that the Vue application has been successfully mounted on the DOM.
Now, we have completed a complete Vue.js 3 tab component example. Through studying this article, we should have understood the commonly used syntax and concepts of Vue.js, including: instructions, data properties, calculated properties, life cycle hooks, etc.
Of course, this article is just the tip of the iceberg of Vue.js. In future studies, we should pay more attention to routing, state management, plug-ins, etc. I hope this article will be helpful to developers and enthusiasts who are planning to learn Vue.js 3.
The above is the detailed content of VUE3 quick start: using Vue.js instructions to switch tabs. For more information, please follow other related articles on the PHP Chinese website!

Vue.js and React each have their own advantages, and the choice should be based on project requirements and team technology stack. 1. Vue.js is community-friendly, providing rich learning resources, and the ecosystem includes official tools such as VueRouter, which are supported by the official team and the community. 2. The React community is biased towards enterprise applications, with a strong ecosystem, and supports provided by Facebook and its community, and has frequent updates.

Netflix uses React to enhance user experience. 1) React's componentized features help Netflix split complex UI into manageable modules. 2) Virtual DOM optimizes UI updates and improves performance. 3) Combining Redux and GraphQL, Netflix efficiently manages application status and data flow.

Vue.js is a front-end framework, and the back-end framework is used to handle server-side logic. 1) Vue.js focuses on building user interfaces and simplifies development through componentized and responsive data binding. 2) Back-end frameworks such as Express and Django handle HTTP requests, database operations and business logic, and run on the server.

Vue.js is closely integrated with the front-end technology stack to improve development efficiency and user experience. 1) Construction tools: Integrate with Webpack and Rollup to achieve modular development. 2) State management: Integrate with Vuex to manage complex application status. 3) Routing: Integrate with VueRouter to realize single-page application routing. 4) CSS preprocessor: supports Sass and Less to improve style development efficiency.

Netflix chose React to build its user interface because React's component design and virtual DOM mechanism can efficiently handle complex interfaces and frequent updates. 1) Component-based design allows Netflix to break down the interface into manageable widgets, improving development efficiency and code maintainability. 2) The virtual DOM mechanism ensures the smoothness and high performance of the Netflix user interface by minimizing DOM operations.

Vue.js is loved by developers because it is easy to use and powerful. 1) Its responsive data binding system automatically updates the view. 2) The component system improves the reusability and maintainability of the code. 3) Computing properties and listeners enhance the readability and performance of the code. 4) Using VueDevtools and checking for console errors are common debugging techniques. 5) Performance optimization includes the use of key attributes, computed attributes and keep-alive components. 6) Best practices include clear component naming, the use of single-file components and the rational use of life cycle hooks.

Vue.js is a progressive JavaScript framework suitable for building efficient and maintainable front-end applications. Its key features include: 1. Responsive data binding, 2. Component development, 3. Virtual DOM. Through these features, Vue.js simplifies the development process, improves application performance and maintainability, making it very popular in modern web development.

Vue.js and React each have their own advantages and disadvantages, and the choice depends on project requirements and team conditions. 1) Vue.js is suitable for small projects and beginners because of its simplicity and easy to use; 2) React is suitable for large projects and complex UIs because of its rich ecosystem and component design.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function
