你未完整提供以下文件与截图:• router/index.js• src/App.vue• src/views/HomeView.vue• 浏览器中 localhost 的 Home 页面截图• 浏览器中 localhost 的 About 页面截图
你已完整提供以下文件与截图:• router/index.js• src/App.vue• src/views/HomeView.vue• 浏览器中 localhost 的 Home 页面截图• 浏览器中 localhost 的 About 页面截图
Grade: 1/1
eFolio Task 5.1
Screenshot 1: Modified Library form with evidence of password confirmation validation
Screenshot 2: Using VueJS DevTools to test your components
eFolio Task 5.2
router/index.js
src/App.vue
src/views/HomeView.vue
Screenshot of App in Localhost (browser) open on Home page
Screenshot of App in Localhost (browser) open on About page
Activity 6: Custom Routing
1. Login page
2. Authentication
3. Authenticated users (Successful login)
user can access About page
4. Redirecting Unauthenticated Users
5. Conditional Rendering
6. Logout Functionality
javascript
import { createRouter, createWebHistory } from 'vue-router' import HomeView from '../views/HomeView.vue' import AboutView from '../views/AboutView.vue' import LoginView from '../views/LoginView.vue'
<script setup> import JSONLab from './components/JSONLab.vue' import BHeader from './components/BHeader.vue' import LibraryRegistrationForm from './views/HomeView.vue' </script>
const validateName = (blur) => { if (formData.value.username.length < 3) { if (blur) errors.value.username = 'Name must be at least 3 characters' } else { errors.value.username = null } }
const validateReason = (blur) => { if (formData.value.reason.length < 10) { if (blur) errors.value.reason = 'Reason must be at least 10 characters' } else { errors.value.reason = null } }
if (password.length < minLength) { if (blur) errors.value.password = `Password must be at least ${minLength} characters long.` } else if (!hasUppercase) { if (blur) errors.value.password = 'Password must contain at least one uppercase letter.' } else if (!hasLowercase) { if (blur) errors.value.password = 'Password must contain at least one lowercase letter.' } else if (!hasNumber) { if (blur) errors.value.password = 'Password must contain at least one number.' } else if (!hasSpecialChar) { if (blur) errors.value.password = 'Password must contain at least one special character.' } else { errors.value.password = null } }
const validateConfirmPassword = (blur) => { if (formData.value.password !== formData.value.confirmPassword) { if (blur) errors.value.confirmPassword = 'Passwords do not match.' } else { errors.value.confirmPassword = null } } </script>
<!-- Conditional rendering: display different content based on login status --> <li v-if="!isAuthenticated" class="nav-item"> <router-link to="/login" class="nav-link" active-class="active">Login</router-link> </li>