日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue.js-Day09【项目实战(附带 完整项目源码)-day04:用户个人中心页面、用户登录页面、将项目打包部署到服务器上、项目汇报、实训心得】

發布時間:2024/9/30 vue 32 豆豆

Vue.js實訓【基礎理論(5天)+項目實戰(5天)】博客匯總表【詳細筆記】

實戰項目源碼【鏈接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA? ?提取碼:n6ol】

目? ?錄

?1、用戶個人中心頁面

user.vue

user.css

2、用戶登錄頁面

login.vue

login.css

3、用戶登錄判斷

index.js

4、將項目打包部署到服務器上

5、項目匯報(項目功能描述)

6、實訓心得


?1、用戶個人中心頁面

user.vue

<template><div class="user"><!-- 頭部 --><div class="header"><div class="lt" @click="$router.go(-1)"><i class="iconfont icon-fanhui"></i></div><h3>我的美團</h3><div class="rt"><router-link to="/"><i class="iconfont icon-shouye1"></i></router-link><router-link to="/"><i class="iconfont icon-fangdajing"></i></router-link></div></div><!-- 個人信息 --><div class="userinfo"><img src="../../static/imgs/avatar.png" alt /><div class="txt"><h3><span>用戶名、昵稱</span><img src alt /></h3><p>賬戶余額:<span>0</span>元</p></div><router-link to="/"><i class="iconfont icon-xiangyou"></i></router-link></div><!-- 下面的信息 --><router-link to class="item"><i class="iconfont icon-caidan- c1 img"></i><h4>全部訂單</h4><span><i class="iconfont icon-xiangyou"></i></span></router-link><ul class="order-info"><li><router-link to><i class="num">1</i><i class="iconfont icon-daifukuan"></i><p>待付款</p></router-link></li><li><router-link to><i class="iconfont icon-daishiyong"></i><p>待使用</p></router-link></li><li><router-link to><i class="num">5</i><i class="iconfont icon-daipingjia"></i><p>待評價</p></router-link></li><li><router-link to><i class="iconfont icon-tuikuanshouhou"></i><p>退款/售后</p></router-link></li></ul><router-link to class="item"><i class="iconfont icon-wujiaoxingxingxing c2 img"></i><h4>我的收藏</h4><span><i class="iconfont icon-xiangyou"></i></span></router-link><router-link to class="item"><i class="iconfont icon-quan c3 img"></i><h4>我的抵用券</h4><span>41<i class="iconfont icon-xiangyou"></i></span></router-link><router-link to class="item"><i class="iconfont icon-lipin c4 img"></i><h4>我的抽獎單</h4><span><i class="iconfont icon-xiangyou"></i></span></router-link><router-link to class="item"><i class="iconfont icon-tubiaozhizuo- c5 img"></i><h4>積分換禮品</h4><span><i class="iconfont icon-xiangyou"></i></span></router-link><a class="item" @click="quit"><i class="iconfont icon-fanhui c5 img"></i><h4>退出登錄</h4><span></span></a></div> </template><script> export default {data() {return {};},methods: {quit() {// 移除statelocalStorage.removeItem("state");// 跳轉到首頁去this.$router.push("/");}} }; </script><style scoped> @import url("../assets/css/user.css"); </style>

user.css

.user{background-color: #eee;padding-top: 1rem; } .user .header{background-color: orange;display: flex; } .header .lt, .header .rt{width: 1rem;height: 1rem;color:#fff;text-align: center; } .header h3{text-align: center;color:#fff;font-weight: normal;flex: 1; } .header .rt a{width: 1rem;height:1rem;display:inline-block; } .header .rt a:first-child{margin-left: -1.1rem; } .header .rt i{font-size:.4rem;color:#fff; } .header .lt i{font-size:.5rem; } .userinfo{display: flex;background-color: red;padding:.3rem .2rem;align-items: center;justify-content: space-between;background-image: url(../../../static/imgs/banner.png);background-size: 100% 100%; } .userinfo img{width:1.2rem;height:1.2rem;margin-right: .2rem; } .userinfo .txt{flex: 1; } .userinfo .txt h3{color:#fff;font-weight: normal; } .userinfo p{font-size:.24rem;color:#fff; } .userinfo i{font-size:.6rem;color:#fff; } .item{display: flex;justify-content: space-between;background-color: #fff;line-height:.8rem;border-bottom:1px solid #eee;color:#999;align-items: center;padding:0 .2rem; } .item .img{width:.6rem;height:.6rem;text-align: center;line-height: .6rem;font-size: .36rem;color:#fff; } .item .c1{background-color: orange; } .item .c2{background-color: blue; } .item .c3{background-color: green; } .item .c4{background-color: hotpink; } .item .c5{background-color: indianred; } .item h4{font-weight:normal;flex:1;margin-left: .2rem; } .item span i{font-size:.4rem; } .order-info{display: flex;padding:.4rem .2rem;background-color: #fff;margin-bottom: .2rem; } .order-info li{width:25%;text-align:center;position: relative; } .order-info li .iconfont{font-size:.6rem;color:#999 } .order-info li p{color:#999;line-height:.4rem;text-align:center; } .order-info li i.num{position: absolute;right: .26rem;top: -.2rem;width: 0.4rem;height: 0.4rem;background-color: red;color: #FFF;text-align: center;line-height: .4rem;border-radius: 50%;font-style: normal; }

2、用戶登錄頁面

login.vue

<template><div class="login"><!-- 頭部 --><div class="header"><div class="lt" @click="$router.go(-1)"><i class="iconfont icon-fanhui"></i></div><h3>登錄頁面</h3><div class="rt"></div></div><!-- 輸入框 --><div class="box"><input type="text" class="ipt" placeholder="請輸入賬號" /><input type="text" class="ipt" placeholder="請輸入密碼" /></div><button class="submit" @click="tijiao">立即登錄</button></div> </template><script> export default {data() {return {};},methods: {tijiao() {alert("登錄成功了");// 將登錄成功的標記存儲在本地環境中localStorage.setItem("state", true);this.$router.back();}} }; </script> <style scoped>@import url("../assets/css/login.css"); </style>

login.css

/* 7.5rem 5.5rem */ .index{padding-top: 1rem;background-color: #eee; } .header .location{text-align:center;color:#000;font-size:.28rem;width:1.3rem; } .header .location img{height:.10rem; } .header .search{width:5rem;display: block;margin:.15rem 0 .15rem 1.4rem;background:#fff;height:.7rem;border-radius:.1rem;line-height:.7rem;color:#aaa; } .header .search img{height:.4rem;margin:0 .1rem;vertical-align:middle; } .header .right img{height:.5rem;margin-top:.25rem; } .list{margin-top:.3rem;background-color: #fff; } .list .tit{line-height: .8rem;margin:0 .2rem;border-bottom: 1px solid #eee;font-size:.32rem;font-weight: normal; } .list li{margin:0 .2rem;border-bottom: 1px solid #eee;padding:.2rem 0; } .list li a{display: block;overflow: hidden;color:inherit; } .list li img{width:1.8rem;height:1.8rem;float:left;margin-right:.3rem; } .list li h4{font-size: .32rem;line-height: .6rem;color:#333;font-weight: normal; } .list li h5{font-size:.28rem;color:#999;font-weight: normal; } .list li p{font-size:.24rem;color:#aaa;overflow: hidden; } .list li p .l{float:left; } .list li p .r{float: right; } .list li p span b{color:orange;font-size:.3rem;font-weight:normal;margin-right:.1rem; } .list li p span i{font-size: .24rem;font-style:normal; } .banner{background-color: #fff;padding-bottom: .6rem; } .banner .menus-list{overflow: hidden; } .banner .menus-list li{width:20%;float:left;text-align: center; } .banner .menus-list li img{width:60%;margin:.3rem auto 0; } .banner .menus-list li p{color:#aaa; } .box{background-color: rgba(255,165,0,.1); } .box .more{line-height: .3rem;padding: 0 .2rem;color: #c500bb;font-size: .3rem; } .box .more i{float: right;font-size: .6rem; }

3、用戶登錄判斷

index.js

import Vue from 'vue' import Router from 'vue-router'Vue.use(Router)// 導入頁面組件 import index from "../pages/index" import user from "../pages/user" import tuangou from "../pages/tuangou" import pay from "../pages/pay" import order from "../pages/order" import notfound from "../pages/notfound" import login from "../pages/login"var router = new Router({routes: [{path: '/',meta: { title: "美團首頁", needLogin: false },component: index},{path: '/user',meta: { title: "用戶中心", needLogin: true },component: user},{path: '/tuangou/:id', // 動態路由!meta: { title: "團購詳情", needLogin: false },component: tuangou},{path: '/order',meta: { title: "訂單頁面", needLogin: true },component: order},{path: '/login',meta: { title: "登錄頁面", needLogin: false },component: login},{path: '/pay',meta: { title: "支付頁面", needLogin: true },component: pay},{path: '*',meta: { title: "404頁面", needLogin: false },component: notfound}] })// 路由攔截 router.beforeEach(function (to, from, next) {// 設計標題document.title = to.meta.title;// 滾動條回到頂部window.scrollTo(0, 0)// 登錄判斷if (to.meta.needLogin) { // 需要登錄了的頁面!// 判斷是否登陸了?if (localStorage.getItem("state")) { // 已經登錄next();} else { // 沒登錄router.push("/login")}} else { // 不需要判斷登錄next();} })// 暴露路由! export default router;

4、將項目打包部署到服務器上

//?項目開發結束之后,執行 “ npm?run?build ” 命令!

??//?生成?dist目錄,交給后臺去部署!

5、項目匯報(項目功能描述)

6、實訓心得

本項目模仿美團網站進行搭建,實現了首頁、團購頁面、訂單頁面等。

運用了很多前端開發中常用的技術,如:編程式導航、動態路由、flex彈性盒子布局等。

在為期9天的項目實訓過程中,我學到了很多的知識。從最基礎的指令(v-html、v-text、v-ifv-for等)、事件綁定、tab切換、組件化開發,vue.js環境搭建、項目初始化、父子組件通信、axios的安裝與使用、路由的使用、編程式導航、導航攔截,再到最后的項目實戰。我真的學到了很多很多知識在學習過程中,記了很多筆記。但是,還有很多知識掌握的并不熟練,課下需要多練習,多總結?!镜?0天,是,項目匯報~~~】

總結

以上是生活随笔為你收集整理的Vue.js-Day09【项目实战(附带 完整项目源码)-day04:用户个人中心页面、用户登录页面、将项目打包部署到服务器上、项目汇报、实训心得】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 女同一区二区三区 | 97福利在线 | www.五月激情 | 日韩在线免费视频 | 天天狠天天插 | 亚洲理论电影在线观看 | 亚洲一区美女 | 国产精品18 | 日韩欧美国产高清91 | 人人草av | 草女人视频 | 不卡的av电影 | 电影《走路上学》免费 | videos亚洲| 91超碰人人| 人妻天天爽夜夜爽一区二区三区 | 一卡二卡三卡在线 | 熟女丰满老熟女熟妇 | 色婷婷午夜 | 韩日中文字幕 | 国产精品黄色大片 | 亚洲精品字幕在线 | 伊人亚洲 | 老妇裸体性猛交视频 | 狠狠狠| 日韩国产欧美一区二区三区 | av青青草| 免费看黄色大片 | 亚洲福利午夜 | 中文字幕xxxx | 古装三级吃奶做爰 | 激情六月丁香 | 2018国产大陆天天弄 | 丰满肉肉bbwwbbww | 国产精品久久久久久亚洲 | 久久九九精品视频 | 亚洲gay视频 | 国产羞羞| 九九热久久免费视频 | 俄罗斯av在线 | 国产亚洲久一区二区 | 人人舔 | 国产综合区 | 麻豆久久久久久久 | 欧美亚洲不卡 | aaa欧美 | 曰批免费视频播放免费 | 午夜精产品一区二区在线观看的 | 久久久久久久久久久久国产精品 | 亚洲中文字幕一区在线 | 国产午夜精品一区二区三区四区 | 国产91边播边对白在线 | 瑟瑟视频在线观看 | 国内91视频 | av最新天| 青青草草 | 99蜜桃臀久久久欧美精品网站 | 宅男噜噜噜66一区二区 | 综合久久亚洲 | 久久1024| 91玉足脚交白嫩脚丫 | 日韩电影一区二区三区四区 | 五月婷婷婷| 嫩草视频免费观看 | 成人污在线 | 亚洲一区二区视频在线播放 | 亚洲国产第一 | 日本精品视频 | 欧洲av无码放荡人妇网站 | 天天操狠狠干 | 久久国语精品 | 99国内揄拍国内精品人妻免费 | 亚洲免费综合 | 国产欧美在线一区 | 欧美日韩亚洲在线 | 红桃成人在线 | 日本女人一级片 | 亚洲资源网 | 欧洲成人午夜精品无码区久久 | 浮生影视在线观看免费 | 思思99精品视频在线观看 | 国内自拍第三页 | 国产高潮又爽又无遮挡又免费 | 九九热精品视频在线观看 | 337p粉嫩大胆色噜噜狠狠图片 | 97在线国产 | 国产极品91 | 欧美日韩国产精品一区 | av之家在线 | a天堂在线| 日韩欧美大片在线观看 | 99久久亚洲精品 | 姐姐你真棒插曲快来救救我电影 | 亚洲第一区在线播放 | 日韩无套无码精品 | 91喷水| 日本黄色成人 | 亚洲天堂影院 | 亚洲精品电影在线观看 |