基于vue来开发一个仿饿了么的外卖商城(二)
一、抽出头部作为一个组件,在底部导航的时候可以相应的显示不同的标题
技术点:使用slot进行组件间的通信;父组件给子组件传值(子组件里面通过props接收父组件传过来的数据)
查看链接:https://blog.csdn.net/sinat_17775997/article/details/52484072
//components/HeaderTop/HeaderTop.vue
<template>
<header class="header">
<slot name="search"></slot>
<a class="header_title">
<span class="header_title_text ellipsis">{{title}}</span>
</a>
<slot name="login"></slot>
</header>
</template> <script>
export default {
props: {
title: String
}
}
HeaderTop.vue
<template>
<HeaderTop title="南昌市华东交通大学南区">
<router-link slot="search" to="/search" class="header_search">
<i class="iconfont icon-sousuo"></i>
</router-link>
<router-link slot="login" to="/login" class="header_login">
<span class="header_login_text">登录|注册</span>
</router-link>
</HeaderTop>
</template> <script>
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
import ShopList from '../../components/ShopList/ShopList.vue'
export default {
components: {
HeaderTop,
ShopList
}
</script>
Msite.vue
<template>
<HeaderTop title="订单列表"></HeaderTop>
</template>
<script>
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
export default {
components: {
HeaderTop
}
}
</script>
Order.vue
<template>
<HeaderTop title="搜索"></HeaderTop>
</template>
<script>
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
export default {
components: {
HeaderTop
}
}
</script>
Search.vue
<template>
<HeaderTop title="我的"></HeaderTop>
</template>
<script>
import HeaderTop from '../../components/HeaderTop/HeaderTop.vue'
export default {
components: {
HeaderTop
}
}
</script>
Profile.vue
二、抽出商家列表编辑成单独组件
三、编辑登录界面
提示:返回前面的路由使用 $router.back()
<template>
<div class="loginContainer">
<div class="loginInner">
<div class="login_header">
<h2 class="login_logo">饿了么</h2>
<div class="login_header_title">
<a href="javascript:;" class="on">短信登录</a>
<a href="javascript:;">密码登录</a>
</div>
</div>
<div class="login_content">
<form>
<div :class="on">
<section class="login_message">
<input type="tel" maxlength="11" placeholder="手机号">
<button disabled="disabled" class="get_verification">获取验证码</button>
</section>
<section class="login_verification">
<input type="tel" maxlength="8" placeholder="验证码" v-model="code">
</section>
<section class="login_hint">
温馨提示:未注册饿了么帐号的手机号,登录时将自动注册,且代表已同意
<a href="javascript:;">《用户服务协议》</a>
</section>
</div>
<div>
<section>
<section class="login_message">
<input type="text" maxlength="11" placeholder="手机/邮箱/用户名">
</section>
<section class="login_verification">
<input type="text" maxlength="8" placeholder="密码">
<div class="switch_button off">
<div class="switch_circle"></div>
<span class="switch_text">...</span>
</div>
</section>
<section class="login_message">
<input type="text" maxlength="11" placeholder="验证码">
<img class="get_verification" src="./images/captcha.svg" alt="captcha">
</section>
</section>
</div>
<button class="login_submit">登录</button>
</form>
<a href="javascript:;" class="about_us">关于我们</a>
</div>
<span href="javascript:" class="go_back" @click="$router.back()">
<i class="iconfont icon-fanhuijiantou"></i>
</span>
</div>
</div>
</template> <script>
export default {}
</script> <style lang="stylus" rel="stylesheet/stylus">
@import "../../common/stylus/mixins.styl"
.loginContainer
width 100%
height 100%
background #fff
.loginInner
padding-top 60px
width 80%
margin 0 auto
.login_header
.login_logo
font-size 40px
font-weight bold
color #0090ff
text-align center
.login_header_title
padding-top 40px
text-align center
>a
color #333
font-size 14px
padding-bottom 4px
&:first-child
margin-right 40px
&.on
color #0090ff
font-weight 700
border-bottom 2px solid #0090ff
.login_content
>form
>div
display none
&.on
display block
input
width 100%
height 100%
padding-left 10px
box-sizing border-box
border 1px solid #ddd
border-radius 4px
outline 0
font 400 14px Arial
&:focus
border 1px solid #0090ff
.login_message
position relative
margin-top 16px
height 48px
font-size 14px
background #fff
.get_verification
position absolute
top 50%
right 10px
transform translateY(-50%)
border 0
color #ccc
font-size 14px
background transparent
&.right_phone
color black
.login_verification
position relative
margin-top 16px
height 48px
font-size 14px
background #fff
.switch_button
font-size 12px
border 1px solid #ddd
border-radius 8px
transition background-color .3s,border-color .3s
padding 0 6px
width 30px
height 16px
line-height 16px
color #fff
position absolute
top 50%
right 10px
transform translateY(-50%)
&.off
background #fff
.switch_text
float right
color #ddd
&.on
background #0090ff
>.switch_circle
position absolute
top -1px
left -1px
width 16px
height 16px
border 1px solid #ddd
border-radius 50%
background #fff
box-shadow 0 2px 4px 0 rgba(0,0,0,.1)
transition transform .3s
&.right
transform translateX(30px)
.login_hint
margin-top 12px
color #999
font-size 14px
line-height 20px
>a
color #0090ff
.login_submit
display block
width 100%
height 42px
margin-top 30px
border-radius 4px
background #0090ff
color #fff
text-align center
font-size 16px
line-height 42px
border 0
.about_us
display block
font-size 12px
margin-top 20px
text-align center
color #999
.go_back
position absolute
top 5px
left 5px
width 30px
height 30px
>.iconfont
font-size 20px
color #999
</style>
Login.vue
然后注册Login路由
router/index.js
//引入组件
import Login from '../pages/Login/Login.vue' {
path: '/login',
component: Login
}
四、控制底部导航的显示隐藏。
注意:此时底部导航FooterGuide仅仅在Msite,Order,Search,Profile才显示,Login上不会显示。
技术点:v-show="$route.meta.show"
查看链接:http://www.cnblogs.com/nns4/p/8589539.html
https://segmentfault.com/q/1010000007648124
<template>
<div id="app">
<router-view/>
<FooterGuide v-show="$route.meta.showFooter"></FooterGuide>
</div>
</template>
App.vue
router/index.js
export default new Router({
routes: [
{
path: '/',
redirect: '/msite'
},
{
path: '/msite',
component: Msite,
meta: {
showFooter: true
}
},
{
path: '/search',
component: Search,
meta: {
showFooter: true
}
},
{
path: '/order',
component: Order,
meta: {
showFooter: true
}
},
{
path: '/profile',
component: Profile,
meta: {
showFooter: true
}
},
{
path: '/login',
component: Login
}
]
})
index.js
从这开始做后台数据交互应用
五、封装ajax请求。
api/ajax.js
提示:使用axios
import axios from 'axios' export default function ajax(url = '', data = {}, type = 'GET'){
return new Promise(function (resolve, reject) {
let promise
if (type === 'GET') {
// 准备 url query 参数数据
let dataStr = ''
Object.keys(data).forEach(key => {
dataStr += key + '=' + data[key] + '&'
})
if (dataStr !== '') {
dataStr = dataStr.substring(0,dataStr.lastIndexOf('&'))
url = url + '?' + dataStr
}
// 发送get请求
promise = axios.get(url)
}else {
// 发送post请求
promise = axios.post(url,data)
}
promise.then(response => {
resolve(response.data)
})
.catch(error => {
reject(error)
})
})
}
然后根据api接口类型设置请求函数的路由
api/index.js
import ajax from './ajax.js' // 根据经纬度获取位置详情
export const reqAddress = (geohash) => ajax(`/position/${geohash}`) // 获取食品的分类列表
export const reqFoodCategories = () => ajax('/index_category') // 根据经纬度获取商铺列表
export const reqShops = (longitude,latitude) => ajax('/shops',{longitude,latitude}) // 账号密码登录
export const reqPwdLogin = (name,pwd,captcha) => ajax('/api/login_pwd',{
name,
pwd,
captcha
},'POST') // 获取短信验证码
export const reqSendCode = phone => ajax('/api/sendcode',{phone}) // 手机号验证码登录
export const reqSmsLogin = (phone,code) => ajax('/api/login_sms',{phone,code},'POST') // 获取用户信息
export const reqUser = () => ajax('/api/userinfo') // 请求登出
export const reqLogout = () => ajax('/api/logout')
六、配置webpack实现跨域
查看链接:https://www.cnblogs.com/zishang91/p/8909900.html
https://segmentfault.com/a/1190000011007043
config/index.js
proxyTable: {
'/api':{ // 配置所有以api开头的请求路径
target: 'http://localhost:4000', // 代理目标的基础路径
changeOrigin: true, //支持跨域
pathRewrite: {
'^/api': ''
}
}
},
最后附上项目源码:
https://github.com/xinhua6/gshop.git
未完待续,敬请期待
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAXYAAADGCAYAAADG46ukAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAD/8SURBVHhe7d0DtC1LsjXg7te2bfu2bdvuvm3btm3buG3btm3bdv3vq/HPPaJr1Nr7nHfPOufsurHGWGOpKisrM9aMmTMiMw904AMfeOhnt0HbQNtA28BybOBA3ZnL6czuy+7LtoG2ATbQwN4jlh6xtQ20DSzMBhrYF9ahzdiasbUNtA00sDewN1trG2gbWJgNNLAvrEObrTVbaxtoG2hgb2BvttY20DawMBtoYF9YhzZba7bWNtA20MDewN5srW2gbWBhNtDAvrAObbbWbK1toG2ggb2Bvdla20DbwMJsoIF9YR3abK3ZWttA20ADewN7s7W2gbaBhdlAA/vCOrTZWrO1toG2gQb2BvZma20DbQMLs4EG9oV1aLO1ZmttA20DDewN7M3W2gbaBhZmAw3sC+vQZmvN1toG2gYa2BvYm621DbQNLMwGGtgX1qHN1pqttQ20DTSwN7A3W2sbaBtYmA00sC+sQ5utNVtrG2gbaGBvYG+21jbQNrAwG2hgX1iHNltrttY20DbQwN7A3mytbaBtYGE20MC+sA5tttZsrW2gbaCBvYG92VrbQNvAwmyggX1hHdpsrdla20DbQAN7A3uztbaBtoGF2UAD+8I6tNlas7W2gbaBBvYG9mZrbQNtAwuzgQb2hXVos7Vma20DbQMN7A3szdbaBtoGFmYDDewL69Bma83W2gbaBhrYG9ibrbUNtA0szAYa2BfWoc3Wmq21DbQNNLA3sDdbaxtoG1iYDTSwL6xDm601W2sbaBtoYG9gb7bWNtA2sDAbaGBfWIc2W2u21jbQNtDA3sDebK1toG1gYTbQwL6wDm221mytbaBtoIG9gb3ZWttA28DCbKCBfWEd2myt2VrbQNtAA3sDe7O1toG2gYXZQAP7wjq02VqztbaBtoEG9gb2ZmttA20DC7OBBvaFdWiztWZrbQNtAw3sDezN1toG2gYWZgMN7Avr0GZrzdbaBtoGGtgb2JuttQ20DSzMBhrYF9ahzdaarbUNtA00sDewN1trG2gbWJgNNLAvrEObrTVbaxtoG2hgb2BvttY20DawMBtoYF9YhzZba7bWNtA20MDewN5srW2gbWBhNtDAvrAObbbWbK1toG2ggf0ACuwHOtCBRpbmNc/6efp+DixSRv2tljd9Py1j7tgdvc70mjsDZrXeq9phq/Lm7j3nbPbbVuWm3Ve1w2ZtPtefW5U3V+c5m9iRevcxe49DaWA/gAL7zv4Jp+C/Csw3K3croJ8CU73mqt+mQLeZY5mWt6quO1rGFAC3cnBbgehc/Tb7bqv72RGHvVm/7qyN9PEN7K3p7WGHshVjn4Lb//zP/8wy+50B1h1l7K41B5K+m/5WGelmTHlVmXPOJsd6red5f5CDHGT8Lteqn6dAv9l9rALB2s7KSx02cyJzTi9tNa3/9Pta/o46zwbwvQfAV5KT7qS9v5PW0UdbAXsAAHB5HvKQhxwOdahDDQc72MGGQx/60MNBD3rQ8XuvAYcpKM05h1VAmGOV4Rq5rvcVsA9xiEMMBz/4wcdr+i2/zwH+9B4qcKX8nFfrmntzz+4113PtXD91OuxhDzu2i3PUJeWlzXKc8/zmuNRjem2/Kcs5ynKcV/XwW9q6Orgp4Ltuyne8uueYWrb6+N7v0zaelrmZw1yHbXaZ+x+TWorZw8x5TxnxZsCeOvnzAwNgMXe87wMWU9BaJQPMAWmAak4CUYcAT+pQwQp4VYCaOpcK5gHfOKTqGHLtgPqcRJHfnKdedbSgHfJdvs91vAb0A/D5LnWoTsH9AfPpvVSnon61jLT/4Q53uI3+CrArz/vDHOYwG7/NgfocoNd22FO22tfdeaBvYG9g/y+JpTJOYICRnuUsZxnOetazDvvss89w+tOffjjDGc4wnPGMZxyASP74AbGthvNz0kdl1lUGmcoGrnesYx1rOO5xjzsc6UhHGt8f5zjH2QDNVaxdOQHByminDiXnY+knOtGJhpOc5CTDUY961BEQgSqw9T6sO9IMUAaeGY1kBKOcgGnYtnLyPo4q5cRJqZd2P9e5zjWc85znHE5+8pOP9cjoIaONSDV19BGA11dXvOIVx+dVrnKV4XrXu95w6UtfejjGMY4xOiT15Yyqk6wgPm2nBtedB9c92WYN7AcQYJ8Op+cYeAWKsMZTnvKUw3777Td87nOfGz784Q8Pn/zkJ4dPf/rTw5vf/ObhHOc4x4ZsMMe2V30Xg4/MUFmr95EkAnTKAUKXuMQlhkc+8pHD4x73uOHxj3/88JznPGd4wAMeMNYj4D11LD5XIFUWgK7OpDJsv3NeT3ziE4eXvexl47Ue/vCHD3e9611HkD384Q+/IT2FpWsrgHnRi1502HfffYerXe1qI5De8pa3HMEZuLsvxwPnAGtAuI5IwtLPfvazD6973euGj3zkI8OLXvSi4clPfvJwrWtdazj2sY89lgX4a/tEmgoTv+Md7zh88YtfHL7xjW8MX/rSl4Yf/OAHw4tf/OLRIU/7Po6qtt1U29+TINXX3nmn0sB+AAD2CupbDbfDbCMrnP/85x+++93vDh7/+c9/xtd///vfw8c+9rHhNKc5zQhSYaaRGQLOq2QXQBKJBSgCKeDnfZ7YuXLDko9ylKMMd77znYc//elPw1/+8pfhD3/4w/j6gQ98YLjmNa85HPnIRx7B9ehHP/rIbh3vO+8x+xOc4AQj0z/iEY84XqOCWGXz6obZfu1rXxvv9fe///3w97//fQRI1wkzn8YKAPFrX/vasa2c+7Of/Ww857a3ve14zXo99xSNO/KQfgnAOv4+97nP8Nvf/nasw9/+9rfhV7/61fDABz5wvL84K8drI/d4zGMec7x/92wUwxH861//2ugvbwC7ejpeexiRHO94xxtHXolrTKWX1td3HlT3BkfUwH4AAPY5FjvH2CuDTKDw+te//vCLX/xiBNG//vWvw5///Ofx+dKXvnQEzwBB9N+AZIJy0edznGsANkByutOdbrjBDW4w3OEOdxjudre7Dbe73e0GTNPT57vc5S7D3e9+9+He9773+PrOd75z+Oc//zmC1R//+MfRwXznO98ZnvCEJwz3v//9hwc/+MHDwx72sOHRj370yLg9/faMZzxjBLWnPOUpw5WvfOWROYeRqp/7AHAcgCfpAjgDxoDre9/73uHMZz7zCIInPOEJx+NOcYpTjM7t+Mc//simv/Wtb41143w8fvnLX45s/2IXu9hw9atffbjRjW403PSmNx1udatbjd+Rk6KVR8ry+WxnO9vw/ve/f7y/f/zjH2M9jJSMCPwO+KP3G61weK7z0Ic+dHjQgx40jmI+9alPjedxgF71nxGXUYgR2Dve8Y7h3e9+99g+RihspI4cVklmewNodR22djYN7AcAYK+gGu206tH19xpww/4ALBDF1gEWcAcST3va00ZAcAyQA4ye9GDyzclOdrJRtog0EIBPkNB1OI1vf/vbw+9+97uRGQPC3/zmN6Pj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" alt="" />
基于vue来开发一个仿饿了么的外卖商城(二)的更多相关文章
- 基于vue来开发一个仿饿了么的外卖商城(一)
一.准备工作 1.大前提:已安装好node. npm. vue. vue-cli.stylus(此项目使用stylus来编译) 2.开发软件:Google Chrome(建议安装插件vue-devto ...
- 基于vue模块化开发后台系统——准备工作
文章目录如下:项目效果预览地址项目开源代码基于vue模块化开发后台系统--准备工作基于vue模块化开发后台系统--构建项目基于vue模块化开发后台系统--权限控制 前言 本文章是以学习为主,练习一下v ...
- 基于vue模块化开发后台系统——构建项目
文章目录如下:项目效果预览地址项目开源代码基于vue模块化开发后台系统--准备工作基于vue模块化开发后台系统--构建项目基于vue模块化开发后台系统--权限控制 前言 在熟悉上一篇说到准备工具之后, ...
- 与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室
原文:与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...
- 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室
原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...
- 基于django快速开发一个网站(一)
基于django快速开发一个网站(一) * 创建虚拟环境.基于虚拟环境创建django==2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornuco ...
- 如何基于 PHP-X 快速开发一个 PHP 扩展
0x01 起步 PHP-X本身基于C++11开发,使用cmake进行编译配置.首先,你需要确定所有依赖项已安装好.包括: gcc-4.8 或更高版本 PHP7.0 或更高版本,需要php7-dev 开 ...
- 用Vue.js开发一个电影App的前端界面
我们要构建一个什么样的App? 我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目.这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界 ...
- 基于Vue手写一个下拉刷新
当然不乏有很多下拉刷新的插件可以直接使用,但是自定义程度不强,大部分都只能改改文字,很难满足设计师的创意,譬如淘宝和京东首页那种效果,就需要自己花心思倒腾了,最近刚好有这种需求,做完了稍微总结一下,具 ...
随机推荐
- Do the Untwist
Do the Untwist Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 【Spring实战】—— 11 通过AOP为特定的类引入新的功能
如果有这样一个需求,为一个已知的API添加一个新的功能. 由于是已知的API,我们不能修改其类,只能通过外部包装.但是如果通过之前的AOP前置或后置通知,又不太合理,最简单的办法就是实现某个我们自定义 ...
- 实验验证stack和heap中是否被设初值
#include <iostream> #include <stdlib.h> using namespace std; class Foo { public: int i; ...
- Twitter Typeahead plugin Example
原文网址: http://dhtmlexamples.com/2012/02/27/using-the-typeahead-plugin-with-twitter-bootstrap-2-and-jq ...
- C语言 条件编译(if )
#include <stdio.h> #define NUM -1 int main(int argc, const char * argv[]) { #if NUM > 0 pri ...
- python:验证客户端链接的合法性与socketserver
一.验证客户端链接的合法性 from socket import * import hmac,os secret_key=b'linhaifeng bang bang bang' def conn_a ...
- 【BZOJ1171】大sz的游戏(线段树+单调队列)
点此看题面 大致题意: 有\(n\)个点,两点间最大通讯距离为\(L\).已知除\(1\)号点外第\(i\)个点能够发出和接收的信号区间\([l_i,r_i]\)以及到\(1\)号点的距离\(dis_ ...
- 【[JSOI2007]文本生成器】
\(AC\)机上的计数\(dp\)啊 并没有想到反着求出不合法的串的个数,直接正面硬上 设\(dp[i][j][0/1]\)表示匹配出的长度为\(i\),在\(AC\)机上位置为\(j\),没有/有匹 ...
- table自适应
当table大于屏幕时,table可以左右滑动 //给table的父元素设置样式 .edit_table{ width:100%; overflow: auto; }
- HashMap面试知识点
HashMap的工作原理是近年来常见的Java面试题. 几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道Hashtable和HashMap之间的区别,那么为何这道面试题如 ...