尚品汇前端项目难点

4 篇文章 0 订阅
订阅专栏

尚品汇前端项目

1.如何运行后浏览器自动打开

​ 解决方法:找到package.json 找到 script serve 后面加 –open

2.打开后发现第一次打开网页显示http://0.0.0.0:8080/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。

解决方法:
在vue.config.js中添加代码:

devServer: {host: ‘localhost’,port: 8080 }

如果没有vue.config.js文件的,在根目录下创建一个,把下面代码复制进去即可

3.ESLint校验功能的关闭

解决方案:

在根目录下创建一个vue.config.js

然后写入

module.exports = {
    // 关闭EsLint
    lineOnSave:false
}

4.给src文件夹配置别名

为了直接从根目录往下写

原因:将src用@替换,这样将来文件过多,找的时候比较方便

在jsconfig.json文件中

{
  "compilerOptions": {
    "target": "es5",
    "module": "esnext",
    "baseUrl": "./",
    "moduleResolution": "node",
    "paths": {
        //这里最关键
      "@/*": [
        "src/*"
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  }
}

5.路由页面的分析

前端所谓路由就是键值对

key:URL地址栏中的路径

value:相应的路由组件

注意:尚品汇项目是上中下结构

路由组件:

Home首页组件、Search路由组件、login登录路由、Register注册路由

非路由组件:

Header【首页、搜索页、登录页、注册页】

Footer 【在首页、搜索页】,但是在登录和注册页面没有

6.开发项目时候的流程

  1. 书写静态页面(html css)
  2. 拆分组件
  3. 获取服务器的数据动态显示
  4. 完成相应的动态业务逻辑

7.创建非路由组件(通用组件)

(Header、Footer)一直存在的组件

非路由组件使用分为几步:

  1. 定义
    在这里插入图片描述

  2. 引用
    在这里插入图片描述

  3. 注册

  4. 在这里插入图片描述

8.路由的跳转

路由跳转就两种形式

  1. 声明式导航(router-link:务必要有to属性)
  2. 编程式导航(类似于@click = “方法名”,下面methods中写逻辑方法this.$router.push(‘/search’))push||replace,编程式导航更好用:因为可以书写自己的业务逻辑

尚品汇项目中路由组件有四个 Home Search Login Register

9.目录结构组件放置注意:

  • components文件夹,经常放置的非路由组件(共用全局组件)
  • pages|views文件夹 经常放置路由组件

10.路由组件和非路由组件的区别

  1. 路由组件一般放置在pages|views文件夹,非路由组件一般放置components文件夹中
  2. 路由组件一般需要在router文件夹中进行注册(使用的即为组件的名字),非路由组件在使用的时候,一般都是以标签的形式使用
  3. 注册完路由,不管路由组件还是非路由组件,身上都有 r o u t e , route, route,router属性
  • route:一般用来获取路由信息【路径、query、params等等】
  • router:一般进行编程式导航进行路由跳转【push|replace】

11.Footer组件的显示与隐藏

显示或者隐藏组件 :v-if|v-show

v-show性能比较好,显示与隐藏 v-if直接操纵DOM树,直接删除组件

Footer组件:在Home、Search显示Footer组件

在登录注册时候隐藏

方法一:我们可以根据组件身上的$route获取当前路由的信息(路径),通过路由路径判断Footer显示与隐藏,如果元素多了就会出现代码冗余

方法二:配置路由的时候,可以给路由添加路由元信息【meta】,路由需要配置对象,它的key不能瞎写胡写乱写

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

12.路由传参(一知半解)

路由传参、参数共有几种写法

  • params参数:属于路径当中的一部分,需要注意,在配置路由的时候需要占位
  • query参数:不属于路径当中的一部分,/home?k=v

搜索框中如何将数据带到Search页面

  1. 搜集表单数据v-model
  2. 在路由中占位
//1.字符串形式
this.$router.push("/search/" + this.keyword + "?k=" + this.keyword.toUpperCase())
//2.模板字符串形式
this.$router.push(`/search/${this.keyword}?k=${this.keyword.toUpperCase()}`)
//3.对象写法  首页在路由中给对应路由起一个name
this.$router.push({
    name:"search",
    params:{
        //此处的keyword已经提前在路由中站好位了
        keyword:this.keyword
    },
    query:{
        k:this.keyword.toUpperCase()
    }
})


//可以直接在Search页面中使用params和query中的值
query:{{this.$route.query.k}}
params:{{this.$route.params.keyword}}

路由传参相关面试题

  1. 路由传递参数(对象写法)path是否可以结合params参数一起使用?
    • 不能,路由跳转传参的时候对象的写法可以是name、path形式,但是需要注意的是,path这种写法不能与params参数一起使用
  2. 如何指定params参数可传可不传?
    在这里插入图片描述

在占位后面加问号,否则占位后不传路径会发生错误!

  1. params参数可以传递可以不传递 如果传递是空串如何解决? 如果不解决会发生路径错误!

    • 使用undefined在这里插入图片描述
  2. 路由组件能不能传递props数据?

    • 可以三种写法
      • 1.布尔值写法在这里插入图片描述

      • 在这里插入图片描述

      • 2.对象写法在这里插入图片描述

在这里插入图片描述

    1. 函数写法

在这里插入图片描述

解决出现Navigation报错的问题

重写push和replace方法

在这里插入图片描述

在这里插入图片描述

某一个组件在很多模块中都能使用,则注册为一个全局组件

如何注册全局组件

全局组件的好处:只需要注册一次则可以在项目的任意位置使用

  1. 给某一个全局组件取好名字在这里插入图片描述

  2. 在main.js中注册全局组件

    • //三级联动组件--全局组件
      import TypeNav from '@/pages/Home/TypeNav'
      //第一个参数:全局组件的名字  第二个参数:哪一个组件
      Vue.component(TypeNav.name,TypeNav)
      
  3. 在Home模块(展示页)中使用在这里插入图片描述

目录结构(组件)

在这里插入图片描述

不是普通的组件需要注册

在这里插入图片描述

axios二次封装

向服务器发请求的方式:

  1. XMLHttpRequest、
  2. fetch、
  3. JQ、
  4. axios

为什么需要进行二次封装axios?

主要为了使用请求拦截器和响应拦截器

请求拦截器:可以在发请求之前可以处理一些业务

响应拦截器:当服务器数据返回以后,可以处理一些事情

项目中经常出现的API目录就是存放axios请求的

src/api/request.js

//对于axios进行二次封装
import axios from "axios"

//1:利用axios对象的方法create,去创建一个axios实例
//2.request就是axios,只不过稍微配置一下
const requests  = axios.create({
    //基础路径,发请求的时候,路径当中会出现api
    baseURL:"/api",
    //代表请求超时的时间为5s
    timeout:5000
})

//请求拦截器:在发请求之前 请求拦截器可以检测到,可以在请求发出去之前做一些事情
requests.interceptors.request.use((config)=>{
    //config:配置对象,对象里面有一个属性很重要,headers请求头
    return config
})

//响应拦截器
requests.interceptors.response.use((res)=>{
    //成功的回调函数:服务器响应数据回来以后,响应拦截器可以检测到,可以做一些事情
    return res.data
},(error)=>{
    //响应失败的回调函数
    return Promise.reject(new Error('false'))
})

//对外暴露
export default requests;

API接口统一管理

如果项目很小,完全可以在组件的生命周期函数中发请求

如在组件的mounted 、 created钩子函数中进行发送请求

如果项目很大:

src/api/index.js

//当前这个模块:api进行统一管理
import requests from './request'

//三级联动接口
//   /api/product/getBaseCategoryList   get   无参数
//将某个接口函数暴露出来 直接在需要调接口的模块中引入该函数调用即可
export const reqCategoryList = () =>{
    //发请求,返回的结果是Promise对象
    return requests({url:'/product/getBaseCategoryList',method:'get'})
}

在这里插入图片描述

出现了404 则会产生跨域…

跨域

什么是跨域?

协议、域名、端口号不同请求,称之为跨域

http://localhost:8080/#/home ---------------前端项目本地服务器

http://39.98.123.311 -----------------------------后台服务器

解决跨域的方法:JSONP\CROS\代理

vue.config.js

在这里插入图片描述

nprogress进度条的使用

  • npm安装,请求数据时有进度条 请求结束后进度条消失

在axios请求拦截器和响应拦截器中进行使用

//对于axios进行二次封装
import axios from "axios"
import nprogress from "nprogress"
//start 进度条开始   done  进度条结束
//引入进度条样式
import "nprogress/nprogress.css"

//1:利用axios对象的方法create,去创建一个axios实例
//2.request就是axios,只不过稍微配置一下
const requests  = axios.create({
    //基础路径,发请求的时候,路径当中会出现api
    baseURL:"/api",
    //代表请求超时的时间为5s
    timeout:5000
})

//请求拦截器:在发请求之前 请求拦截器可以检测到,可以在请求发出去之前做一些事情
requests.interceptors.request.use((config)=>{
    //config:配置对象,对象里面有一个属性很重要,headers请求头
    //进度条开始动
    nprogress.start()
    return config
})

//响应拦截器
requests.interceptors.response.use((res)=>{
    //成功的回调函数:服务器响应数据回来以后,响应拦截器可以检测到,可以做一些事情
    //进度条结束
    nprogress.done()
    return res.data
},(error)=>{
    //响应失败的回调函数
    return Promise.reject(new Error('false'))
})

//对外暴露
export default requests;

vuex状态管理库

vuex是什么?

vuex是官方提供一个插件,状态管理库,集中式管理项目中组件共用的数据

并不是全部的项目都需要vuex,如果项目很小,完全不需要vuex,如果项目很大,组件很多、数据很多,数据维护很费劲用vuex

vuex的核心要素

  • state
  • mutations
  • actions
  • getters
  • modules

vuex的基本使用

  1. 在这里插入图片描述

  2. 在这里插入图片描述

  3. 在button上加入点击事件方法add

  4. 在这里插入图片描述

  5. 在actions中写方法具体

    1. 在这里插入图片描述

vuex模块化开发

如果项目过大,组件过多,接口也很多,数据也很多,可以让Vuex实现模块化开发

在这里插入图片描述

把这一个个小仓库引到大仓库里进行开发

在这里插入图片描述

实例(接口获取数据存到vuex中提取出来渲染到页面上)

  1. 在这里插入图片描述

  2. 在这里插入图片描述

  3. 在这里插入图片描述

  4. 在这里插入图片描述

某个全局组件

  1. 在这里插入图片描述

完成三级联动动态背景颜色

效果图:在这里插入图片描述

方法一:采用css样式修改

在这里插入图片描述

方法二:JS修改,通过动态添加类,然后设置类的样式来修改颜色

  1. 在这里插入图片描述

2.鼠标移入,目的是让上面的现索引值改变在这里插入图片描述

3.在这里插入图片描述

  1. 动态添加类名在这里插入图片描述

  2. 给类名设置样式在这里插入图片描述

  3. 鼠标移出样式取消:同理可得在这里插入图片描述

在这里插入图片描述

二三级分类的显示与隐藏

第一种方法:用样式来显示与隐藏

第二种方法:js

在这里插入图片描述

函数的防抖与节流

节流:在规定的间隔时间内不会重复触发回调,只有大于这个事件间隔才会触发回调,把频繁触发变成少量触发(技能cd) 轮播图

防抖:前面的所有触发都消失最后一次在规定的时间之后才会触发,也就是说如果连续快速的触发,只会执行一次(回城) 输入框

防抖:

在这里插入图片描述

节流:

在这里插入图片描述

防抖:用户操作很频繁,但是只能执行一次

节流:用户操作很频繁,但是把频繁的操作变成少量操作【可以给浏览器有充裕的时间解析代码】

三级联动节流操作

在这里插入图片描述

三级联动组件的路由跳转和传递参数

效果图

在这里插入图片描述

三级联动用户可以点击一级二级三级分类,当你点击的时候与Home模块跳转到Search模块,一级会把用户选中的产品(产品名字、ID)在路由跳转的时候,当作参数进行传递

路由跳转:

声明式导航router-link:

在这里插入图片描述

编程式导航push/replace

在这里插入图片描述

这样并非最佳选择,因为循环后会产生1000+回调函数,因此我们可以使用事件的委派(冒泡) ,写在最近的父元素里面

在这里插入图片描述

没有经历过循环语句的父元素

注意:

  1. 如果使用声明式导航router-link,可以实现路由的跳转和传参

但是需要注意,会出现卡顿的现象

router-link:是一个组件,当服务器的数据返回之后,会循环出很多的router-link组件【创建出很多的组件实例】1000+

而创建组件实例的时候,一瞬间创建1000+是很耗内存的,因此出现了卡顿的现象

最终利用事件委派 + 编程式导航实现路由跳转与传递参数

在这里插入图片描述

第一个问题:利用自定义属性

在这里插入图片描述
在这里插入图片描述

第二个问题:利用event

在这里插入图片描述
在这里插入图片描述

mockjs模拟数据

mock数据(模拟):如果你想mock数据,需要用到一个插件mockjs

mockjs:生成随机数据,拦截Ajax请求

  1. 安装mockjs

  2. 在src目录下创建mock

  3. 在mock文件夹中创建json文件,准备json数据进行展示

  4. 把mock数据需要的图片放置到public文件夹中【public文件夹在打包的时候,会有响应的资源原封不动的打包到dist文件夹】

  5. 开始mock虚拟数据,通过mockjs实现

    • 创建mockServe.js

    • //先引入mockjs模块
      import Mock from 'mockjs'
      //把JSON数据格式引入进来【JSON数据格式根本没有对外暴露,但是可以引入】
      //webpack默认对外暴露:图片、JSON数据格式
      import banner from './banner.json'
      import floor from './floor.json'
      
      //mock数据:第一个参数请求地址  第二个参数:请求数据
      Mock.mock("/mock/banner",{code:200,data:banner})
      Mock.mock("/mock/floor",{code:200,data:floor})
      
  6. mockServe.js文件在入口文件中引入(至少使用一次才能模拟出)在这里插入图片描述

获取mockjs数据

  1. 重新封装axios在这里插入图片描述

  2. 封装请求函数在这里插入图片描述

  3. 派发action在这里插入图片描述

  4. 在这里插入图片描述

在这里插入图片描述

  1. 在这里插入图片描述

  2. 组件中引入数据

在这里插入图片描述

未完待续…

端口监控信息
middle博客
04-15 1869
netstat -nlptu | grep 8080 一、 0.0.0.0:8080 代表8080端口,对内网和外网都是开放的 tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 123941/java 二、查看网卡的代码: /** * @date 2018/1...
web前端重点业务难点
10-17
前端开发一些业务逻辑难点
【前段工程化】经验总结03-ESNext到底是个啥?tsconfig.json配置文件中的ESNext, ESNext和ES6的关系
qq_17335549的博客
09-07 4247
ESNext到底是个啥?tsconfig.json文件中的ESNext
“http://0.0.0.0:8080/ 的页面可能存在问题...” 的解决方案
FunSober的博客
10-31 3168
启动Vue项目时,对于报错:“http://0.0.0.0:8080/ 的页面可能存在问题...” 的一个解决方案。
如何在顶层使用await 【top level await】
秋天,黄叶坠地,凉风有信。
11-08 2431
仅当 “module” 选项设置为 “es2022”、“esnext”、“system”、“node16” 或 “nodenext”,且 “target” 选项设置为 “es2017” 或更高版本时,才允许使用顶级 “await” 表达式。添加type为module。如何在顶层使用await 【top level await】
angular 仅当 “module” 选项设置为 “esnext” 或 “system”,并且 “target” 选项设置为 “es2017” 或更高版本时,才允许使用顶级 “await” 表达式
qq_36557846的博客
06-02 2291
angular 仅当 “module” 选项设置为 “esnext” 或 “system”,并且 “target” 选项设置为 “es2017” 或更高版本时,才允许使用顶级 “await” 表达式
vue项目中@/src路径跳转配置
zmx781284440的博客
03-12 1023
在vscode中安装Vue Jumper这个插件,可支持。(ctrl+鼠标左键点击组件名)
前端项目尚品汇大型电商项目
04-01
项目尚品汇大型电商项目
基于Vue全家桶+ES6++Webpack+Axios等前端最新最热的技术开发的网上购物商城--尚品汇项目
08-11
1)此项目为在线电商Web App (SPA) 2)包括首页, 搜索列表, 商品详情, 购物车, 订单, 支付, 用户登陆/注册等多个子模块 3)使用Vue全家桶+ES6++Webpack+Axios等前端最新最热的技术 4)采用模块化、组件化、工程化的模式...
尚品汇page.html
09-15
尚品汇页面html布局
尚硅谷前端入门html+css零基础教程,零基础前端开发html5+css3视频尚品汇项目源码
最新发布
03-06
需要自取,找资源不易,请多多点赞吧
gshop_client:尚品汇前台项目PC
05-29
shop-client 尚品汇前台PC项目 芜湖起飞o( ̄▽ ̄)ブ
从零搭建vue-vite-js项目(二)
huangzhi_的博客
01-29 222
配置 jsconfig.json;目录结构划分;已经配置路由和配置pinia。
Vue-cli3中使用TS语法,以及使用例子
u012732909的博客
04-27 4056
ts有什么用? 类型检查、直接编译到原生js、引入新的语法糖 为什么用ts? TypeScript的设计目的应该是解决JavaScript的“痛点”:弱类型和没有命名空间,导致很难模块化,不适合开发大型程序。另外它还提供了一些语法糖来帮助大家更方便地实践面向对象的编程。 typescript不仅可以约束我们的编码习惯,还能起到注释的作用,当我们看到一函数后我们立马就能知道这个函数的用法,需要传什么值,返回值是什么类型一目了然,对大型项目的维护性有很大的提升。也不至于使开发者搬起石头砸自己的
尚品汇项目难点及解决
m0_51858053的博客
03-18 2844
v-router重写push、replace方法 问题描述:当页面再次进入同一个路由地址时,控制台报错 解决方法:修改vue-router的配置文件,也就是router/index.js文件 //重写VueRouter.prototype身上的push方法了 VueRouter.prototype.push = function(location, resolve, reject) { //第一个形参:路由跳转的配置对象(query|params) //第二个参数:undefined|箭头函数(成
项目避坑-template报下面的错误
m0_52896752的博客
07-20 1660
前端-template-避坑
vue项目文件配置element控件
weixin_52183261的博客
12-26 391
并且需要下载下面两个版本。
windows 运行vue项目 打开地址为 http://0.0.0.0:8080,浏览器显示无法访问,手动修改为 127.0.0.1:8080 可正常打开。
热门推荐
Jovan的博客
09-27 1万+
windows 运行开发模式命令 npm run dev, 启动后默认自动打开浏览器,但是打开地址为 http://0.0.0.0:8080,浏览器显示无法访问,手动修改为 127.0.0.1:8080 可正常打开。 每次手动更改不是办法,所以需要调整下代码,能够自动打开后就能正常访问。 ...
尚硅谷--尚品汇项目笔记
qq_49575831的博客
11-05 2370
尚硅谷--尚品汇项目笔记
vue尚品汇后台管理系统
08-11
尚品汇后台管理系统是一个基于Vue和element-ui组件库开发的项目,它包括登录、首页、品牌管理、平台属性管理、SKU管理、SPU管理、用户管理、角色管理和菜单管理模块。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [【Vue】项目尚品汇后台管理系统(上)](https://blog.csdn.net/weixin_44337386/article/details/123864053)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [基于 Vue.js 实现的 SPA 尚品汇在线电商前后台项目](https://blog.csdn.net/weixin_51008866/article/details/128351123)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • Promise和Axios 5319
  • 真机预览时报错 3223
  • 控制台报400、500内部服务器错误是什么原因?怎么解决? 2624
  • 尚品汇前端项目难点 1735
  • 黑马优购商城项目中遇到的种种bug和解决方案 1008

分类专栏

  • 面试经历 2篇
  • JavaScript知识点 2篇
  • 自学笔记 11篇
  • 力扣算法 1篇
  • 暑假每日笔记打卡 4篇
  • 黑马优购商城项目BUG集 4篇

最新评论

  • 黑马优购商城项目中遇到的种种bug和解决方案

    茗天·南寻: 我用的3.6.4版本。不显示这个分包选项。subPackages写好了,还是不显示。

  • 控制台报400、500内部服务器错误是什么原因?怎么解决?

    SCG bin: 方法都试过了,为何还是不行?

  • Git的思维导图(全包括)

    向KaiSarH学习: 概念当中的git最终结果说错了吧,应该是让工作区的文件都处于未修改的状态吧

  • 真机预览时报错

    雪飘碧鸳: 无效果,还是不行

  • 真机预览时报错

    左丘超然: 从微信开发者工具右上角有 百度搜一下表情包

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 控制台报400、500内部服务器错误是什么原因?怎么解决?
  • 面试高频题一
  • Promise和Axios
2022年25篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左丘超然

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

哆哆女性网女儿姓郑州 起名我可以变成鱼李姓女宝宝怎么起名东张西望的反义词柳残阳武侠小说全集满月之下请相爱演员表三个龙中国南方航空订票男孩起名四个字带火翁姓该起名大全远字起名张姓小孩起名2019罗马数字5杨家什么起名女孩牛小孩起名大全武汉宏基长途汽车站乌拉草是什么用中药取名起名大全诺字公司起名给公司起名名字打分榆次买房陈氏起名男孩名字大全生日留言板留言修炼爱情武侠boss之路姓杨的 孩子起名公司起名个人八字什么名鹊起平移的定义起什么名字好 易经淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化