尚品汇项目复盘(一)

简介: 尚品汇项目复盘(一)

前言

使用vue开发时 可以简单总结为四个步骤

  1. 写静态样式
  2. 发请求
  3. vuex进行三连环 actions mutations state
  4. dispatch获取内容 进行页面内容的渲染


(一)如何使用脚手架创建一个项目

使用Win+R 输入CMD 打开资源管理器


其中xxx是指你的项目名称

(二)对目录进行分析


node_modules:放置项目依赖的地

public:一般放置一些共用的静态资源,打包上线的时候,public文件夹里面资源原封不动打包到dist文件夹里面

src:程序员源代码文件夹

而对于src目录里面的内容


  1. api 发请求的
  2. assets 经常放置一些静态资源(图片),assets文件夹里面资源webpack会进行打包为一个模块(js文件夹里面)
  3. components 一般放置非路由组件(或者项目共用的组件)
  4. mock 当后端请求还未完成时可以自己用mock来模拟数据
  5. router 配置路由信息
  6. store 用来进行vuex三连环
  7. utils (目前为止学到的是可以用存放uuid的js文件)
  8. views 页面展示的内容

(三)进行自定义配置

3.1 项目运行,浏览器自动打开

package.json
    "scripts": {
    "serve": "vue-cli-service serve --open",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
    },

3.2 关闭eslint校验

根目录下创建vue.config.js,进行配置

module.exports = {
  //关闭eslint
  lintOnSave: false
  }

3.3 配置跨域问题

根目录下创建vue.config.js,进行配置

  // 配置代理跨域问题
  devServer: {
    proxy: {
      'api': {
        target: 'http://gmall-h5-api.atguigu.cn',
      }
    },
  }
})

其中 target:‘xxx’是你所调用接口的地址

(四)路由配置

4.1 yarn 安装路由

输入指令 yarn add vue-router

之后在src目录下创建router目录 创建两个js文件

4.2引入路由

在main.js页面中

import router from '@/router'
new Vue({
  render: h => h(App),
  // 注册路由相关信息 名字和值一致时可以简写
  router,
}).$mount('#app')
 

4.3路由的相关配置

其中index.js文件的内容为

import Vue from'vue'
import VueRouter from'vue-router'
 
Vue.use(VueRouter)
import routes from './routes'

// 每当点击两次搜索按钮的时候 就会报错
// 原因是因为push||replace方法
// 此时需要自己手写一个push||replace方法
let oringPush = VueRouter.prototype.push;
let oringReplace = VueRouter.prototype.replace;
// 此时重写push||replace
// 第一个参数是告诉push方法 你往哪里跳转
VueRouter.prototype.push = function(location,resolve,reject) {
  // 当resolve 和 reject 存在的时候 即第一次点击的时候
  if(resolve && reject){
    oringPush.call(this, location, resolve, reject)
  }else {
    oringPush.call(this, location, ()=>{},()=>{})
  }
}

VueRouter.prototype.replace = function(location,resolve,reject) {
  // 当resolve 和 reject 存在的时候 即第一次点击的时候
  if(resolve && reject){
    oringReplace.call(this, location, resolve, reject)
  }else {
    oringReplace.call(this, location, ()=>{},()=>{})
  }
}
//此时 push||replace方法遇到连续点击两次就不会报错了

export default new VueRouter({
  routes,
  // 滚动行为 控制刚进页面时的页面初始状态位置
  scrollBehavior () {
    return { x: 0, y: 0 } 
  }
})

在index.js中进行了

import Vue from ‘vue’:导入Vue.js核心库。

import VueRouter from ‘vue-router’:导入Vue Router库。

Vue.use(VueRouter):将Vue Router插件注册到Vue中,使其成为Vue的一部分。

import routes from ‘./routes’:从./routes路径导入路由配置对象。

然后重写了replace和push方法 目的是防止连续进行push/replace方法时会进行报错

而scrollBehavior的作用为:定义路由切换时页面的滚动行为,这里设置为每次路由切换后页面滚动到顶部。防止在进行路由跳转的时候 页面位置不定

在routes.js文件中 就是进行引组件 配置组件内容

例如:

import Home from '@/views/Home/index.vue'
import Search from '@/views/Search/index.vue'
import Register from '@/views/Register/index.vue'
import Login from '@/views/Login/index.vue'
import Detail from '@/views/Detail/index.vue'
import AddCartSuccess from '@/views/AddCartSuccess'
import ShopCart from '@/views/ShopCart'
export default
[
  // 在这里配置路由
  {
    path: "/home",
    component: Home,
    meta: { show: true }
  },
  {
    path: "/login",
    component: Login,
    meta: { show: false }
  },
  {
    path: "/register",
    component: Register,
    meta: { show: false }
  },
  {
    path: "/search/:keyword?",
    component: Search,
    meta: { show: true },
    name: 'search'
  },
  {
    path: "/detail/:skuisd",
    component: Detail,
    meta: { show:true}
  },
  {
    path: "/shopcart",
    name:'ShopCart',
    component: ShopCart,
    meta: { show:true}
  },
  {
    path: "/addcartsuccess",
    name:'addcartsuccess',
    component: AddCartSuccess,
    meta: { show:true}
  },
  {
    path: "/",
    redirect: "/home"
  }
]
目录
相关文章
静态路由 网络实验
本文介绍了如何通过配置静态路由实现不同网络设备间的通信,包括网络拓扑图、设备IP配置、查看路由表信息、配置静态路由和测试步骤。通过在路由器上设置静态路由,使得不同子网内的设备能够互相通信。
静态路由 网络实验
|
存储 JavaScript 前端开发
vue尚品汇商城项目-day05【30.登录与注册静态组件(处理公共图片资源问题)+31.注册的业务+登录业务】
vue尚品汇商城项目-day05【30.登录与注册静态组件(处理公共图片资源问题)+31.注册的业务+登录业务】
103 1
|
域名解析 缓存 运维
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案
【5月更文挑战第22天】【DNS故障排查手册】解决域名无法解析、速度慢、污染劫持及配置错误问题。检查网络、清理缓存、更换DNS服务器、使用HTTPS、DNSSEC及CDN。示例:使用nslookup查询域名解析。定期检查优化DNS服务器,确保稳定安全。
3285 4
【域名解析DNS专栏】域名解析故障排查手册:常见问题与解决方案
|
安全 Linux 网络安全
登录神器:Hydra 保姆级教程
登录神器:Hydra 保姆级教程
|
开发框架 监控 Kubernetes
CTF本地靶场搭建——GZ:CTF基础使用
GZ::CTF是一个基于ASP.NET Core的开源CTF竞赛平台,支持Docker或K8s容器部署,提供静态和动态题目类型,包括静态附件、动态附件、静态容器和动态容器,具备动态分值功能,如三血奖励和动态flag作弊检测。平台还具有实时通知、邮件验证、用户权限管理、Writeup收集、流量代理转发等功能。此外,它包含比赛管理、队伍管理、用户管理等多个管理模块,适合举办和参与网络安全竞赛。
|
存储 前端开发 数据可视化
尚品汇后台项目(一)
尚品汇后台项目(一)
165 0
|
安全
ctfshow-WEB-web4
tf.show WEB模块第4关是一个文件包含漏洞,页面提示了源码中的关键代码,使用include()函数接收url参数,include()函数包含的文件会被执行,从而造成任意代码执行,或者配合伪协议获取敏感文件甚至getshell; 然而这一关伪协议不起作用,我们可以通过日志注入进行任意命令执行,从而getshell
450 0
ctfshow-WEB-web4
Bugku CTF web GET 解题思路
Bugku CTF web GET 解题思路
271 0
|
数据采集 搜索推荐 网络安全
[CTF/网络安全] 攻防世界 robots 解题详析
题目描述:X老师上课讲了Robots协议,小宁同学却上课打了瞌睡,赶紧来教教小宁Robots协议是什么吧。
524 0
|
关系型数据库 MySQL Linux
[ 靶场环境篇 ] pikachu 靶场环境搭建(特别详细)
想入门渗透行业呢光有理论基础是不够的,更重要的是实践经验。 接下来我会分享一些入门级靶场,从环境搭建一直到通关教程。 入门级靶场会分享:pikachu、DVWA、XSS-labs、sql-labs、upload-labs等内容。
6245 0
[ 靶场环境篇 ] pikachu 靶场环境搭建(特别详细)