一、抽出头部作为一个组件,在底部导航的时候可以相应的显示不同的标题

技术点:使用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,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LD5XIFUWgK7OpDJsv3NeT3ziE4eXvexl47Ue/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来开发一个仿饿了么的外卖商城(二)的更多相关文章

  1. 基于vue来开发一个仿饿了么的外卖商城(一)

    一.准备工作 1.大前提:已安装好node. npm. vue. vue-cli.stylus(此项目使用stylus来编译) 2.开发软件:Google Chrome(建议安装插件vue-devto ...

  2. 基于vue模块化开发后台系统——准备工作

    文章目录如下:项目效果预览地址项目开源代码基于vue模块化开发后台系统--准备工作基于vue模块化开发后台系统--构建项目基于vue模块化开发后台系统--权限控制 前言 本文章是以学习为主,练习一下v ...

  3. 基于vue模块化开发后台系统——构建项目

    文章目录如下:项目效果预览地址项目开源代码基于vue模块化开发后台系统--准备工作基于vue模块化开发后台系统--构建项目基于vue模块化开发后台系统--权限控制 前言 在熟悉上一篇说到准备工具之后, ...

  4. 与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室

    原文:与众不同 windows phone (31) - Communication(通信)之基于 Socket UDP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  5. 与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室

    原文:与众不同 windows phone (30) - Communication(通信)之基于 Socket TCP 开发一个多人聊天室 [索引页][源码下载] 与众不同 windows phon ...

  6. 基于django快速开发一个网站(一)

    基于django快速开发一个网站(一) *  创建虚拟环境.基于虚拟环境创建django==2.0.0和图片加载库和mysql数据库驱动 1. 创建目录并创建虚拟环境 ╰$ mkdir Cornuco ...

  7. 如何基于 PHP-X 快速开发一个 PHP 扩展

    0x01 起步 PHP-X本身基于C++11开发,使用cmake进行编译配置.首先,你需要确定所有依赖项已安装好.包括: gcc-4.8 或更高版本 PHP7.0 或更高版本,需要php7-dev 开 ...

  8. 用Vue.js开发一个电影App的前端界面

    我们要构建一个什么样的App? 我们大多数人使用在线流媒体服务(如Netflix)观看我们最喜欢的电影或者节目.这篇文章将重点介绍如何通过使用vue.js 2 建立一个类似风格的电影流媒体WEB交互界 ...

  9. 基于Vue手写一个下拉刷新

    当然不乏有很多下拉刷新的插件可以直接使用,但是自定义程度不强,大部分都只能改改文字,很难满足设计师的创意,譬如淘宝和京东首页那种效果,就需要自己花心思倒腾了,最近刚好有这种需求,做完了稍微总结一下,具 ...

随机推荐

  1. win10与子系统ubuntu之间互访文件

    在window10的store里面 搜索ubuntu,下载,可以安装 注意: 初次打开有许多软件都没安装,可以新进行 sudo apt-get update,之后在进行其他的操作 1.下载的子系统ub ...

  2. 在Oracle中查看客户端连接的IP信息 .

    大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢? con sys/sys as dba 1. 利用triger 这里不介绍. 2. 利用 D ...

  3. Python3基本数据类型(四、元组)

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号来表示. 一.创建元组 tup = ()#创建空元组 tup = ("ss",55,"aa& ...

  4. Kubernetes stateful set讲解以及一个基于postgreSQL的具体例子

    Stateful Set是Kubernetes 1.9版本新引入的一个概念,用于管理有状态的应用. Kubernetes官方文档: https://kubernetes.io/docs/concept ...

  5. Java里面String的编码问题

    Java里面内置字符串全部是utf-16编码,详细的编码方式看这里 import java.nio.charset.Charset; import java.util.Arrays; import j ...

  6. 【转载】#458 Errors While Converting Between enum and Underlying Type

    You can convert to an enum value from its underlying type by casting the underlying type (e.g. int) ...

  7. IOS ASI和AFN的 区别

    一.底层实现 1> AFN的底层基于OC的NSURLConnection和NSURLSession2> ASI的底层基于纯C语言的CFNetwork框架3> ASI的运行性能 高于 ...

  8. hack-checkbox

    checkbox选择按钮要用我们自己的样式,看到这个的时候,很可能会以为需要checkbox才能实现,用css可能很难.其实狠简单. <style> .checkbox input{ di ...

  9. 清除IE地址栏中的历史网址

    实现效果: 知识运用: RegistryKey类的GetValueNames和DeleteValue方法 实现代码: private void button1_Click(object sender, ...

  10. 在vue项目中的axios使用配置记录

    默认vue项目中已经安装axios,基于element-ui开发,主要记录配置的相关. axiosConfig.js import Vue from 'vue' import axios from ' ...