尚品汇项目(Day1)

news2024/11/24 9:11:20

项目结构介绍

  1. vue-cli 脚手架初始化项目

  2. node + webpack + 淘宝镜像

  3. node_modules文件夹:项目依赖文件夹

  4. public文件夹:一般放置静态资源(图片),需要注意:放在public文件夹中的静态资源,webpack进行打包的时候会原封不动打包到dist文件夹中。

  5. src文件夹(程序源代码文件夹):
    ----assets文件夹:一般放置静态资源(多个组件共用的静态资源),需要注意,放置在assets文件夹里面的静态资源,在webpack打包的时候,webpack会把静态资源当作一个模块,打包JS文件里面。
    ----components文件夹:一般放置的是非路由组件(全局组件)
    ----App.vue:唯一的跟组件,Vue中的组件(.vue)
    ----main.js:程序入口文件,也是整个程序最先执行的文件

  6. babel.config.js文件:配置文件(babel相关)

  7. package.json文件:项目的身份证,记录项目名称、项目依赖、项目如何运行

  8. package-lock.json文件:缓存性文件

  9. README.md文件:说明性文件

项目其他配置

1.项目运行起来的时候,让浏览器自动打开
----package.json

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

在这里插入图片描述
2.eslink校验功能关闭
----在根目录下,创建vue.config.js文件
比如,声明变量但没使用会报错

module.exports = {
  // 关闭eslink
  linkOnSave: false
}

3.src文件夹简写方式,配置别名。@
----在根目录下,创建jsconfig.json配置别名@提示

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

项目路由分析

vue-router
前端路由:KV键值对
key:URL(地址栏中路径)
value:相应的路由组件

----路由组件:
Home首页路由组件、Search路由组件、Login登录路由组件、Refister注册路由组件
----非路由组件:
Header【在首页、搜索页有】、Footer【在首页、搜索页有,登陆页面、注册页面没有】

完成非路由组件Header与Footer业务

1.开发项目逻辑:

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

注意1:组件创建的时候,组件结构 + 组件样式 + 图片资源

注意2:项目采用less样式,浏览器不识别less样式,需要通过less、less-loader进行处理,把less样式变成css样式。

注意3:如果想让组件识别less样式,需要在style标签加上 lang=less

2.使用组件步骤(非路由组件):
-创建或定义
-引入
-注册
-使用

路由组件搭建

vue-router
路由组件有四个:Home,Search,Login,Register
-components文件夹:经常放置非路由组件(共用全局组件)
-pages | views文件夹:经常放置路由组件

1.配置路由
项目中配置的路由一般放在router文件夹中
2.总结

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

3.路由的跳转
(1)声明式导航router-link,可以进行路由跳转
(2)编程式导航,push | replace,可以进行路由跳转

编程式导航:声明式导航能做的,编程式导航都能做。还可以做一些其他业务逻辑。

Footer组件显示与隐藏

v-show
Footer组件:在Home、Search显示Footer组件
Footer组件:在Login、Register隐藏

1.可以根据组件身上的$route获取当前路由信息,通过路由路径判断Footer显示隐藏。
在这里插入图片描述

2.配置路由时,可以给路由添加路由元信息 meta ,路由需要配置对象,他的key不能随便写
在这里插入图片描述
在这里插入图片描述

路由传参

1.路由跳转有几种方式?
eg:A -> B
声明式导航:router-link(务必有to属性)
编程式导航:利用的是组件实例的$router.push | replace 方法

2.路由传参,参数有几种写法?
params参数:属于路径当中的一部分,需要注意,在配置路由的时候需要展位
query参数:不属于路径当中的一部分,类似于ajax中的queryString /home?k=v&kv=,不需要占位

 // 路由传递参数
            // 第一种:字符串方式
             this.$router.push('/search/' + this.keyword + '?k=' + this.keyword.toUpperCase())
            
            // 第二种:模板字符串
             this.$router.push(`/search/${this.keyword}?k=${this.keyword.toUpperCase()}`)

             // 第三种:对象,要添加name
             this.$router.push({name:"search",params:{keyword:this.keyword},query:{k:this.keyword.toUpperCase()}})

3.相关面试题

1:路由传递参数(对象写法)path是否可以结合params参数一起使用?
不可以:不能这样书写,程序会崩掉

2:如何指定params参数可传可不传?
比如:配置路由的时候,占位了(params参数),但是路由跳转的时候就不传递。
路径会出现问题
解决办法:在配置路由的时候,在占位的后面添加(?代表params参数在这里插入图片描述

3:params参数可以传递也可以不传递,但是如果传递是空串,如何解决?
使用undefined解决:params参数可以传递、不传递(空的字符串)
this.$router.push({name:"search",params:{keyword:''||undefined},query:{k:this.keyword.toUpperCase()}})

4:如果指定name与params配置, 但params中数据是一个"", 无法跳转,路径会出问题

5: 路由组件能不能传递props数据?
可以:三种写法

 // 布尔值写法:params
             props: true,
             对象写法:额外给路由组件传递以下props
             props:{a:1,b:2}
            // 函数写法:可以params参数、query参数,通过props传递给路由参数
            props:($route)=>({keyword:$route.params.keyword,k:$route.query.k})

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/910402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

套接字属性设置

基本概念 设置套接字的选项对套接字进行控制除了设置选项外,还可以获取选项选项的概念相当于属性,所以套接字选项也可说是套接字属性有些选项(属性)只可获取,不可设置有些选项既可设置也可获取 选项级别 SOL_SOCKET的…

功能性需求与非功能性需求的区别

如果你曾经负责过软件项目开展的全过程,就会知道需求定义在项目后期的重要性。清晰、明确的需求定义不仅有助于有效地管理客户期望,也有助于指导项目的顺利开展。 在项目前期阶段,如果需求定义不清晰,就会导致项目范围和成果定义…

Prompt-“设计提示模板:用更少数据实现预训练模型的卓越表现,助力Few-Shot和Zero-Shot任务”

Prompt任务(Prompt Tasks) 通过设计提示(prompt)模板,实现使用更少量的数据在预训练模型(Pretrained Model)上得到更好的效果,多用于:Few-Shot,Zero-Shot 等…

java.net.UnknownHostException 解决方法

原文链接:https://blog.csdn.net/qq_39390545/article/details/108755289 以下为复盘这里笔记 一般原因 1.服务器没网,调不到公网域名,无法解析出IP,从而无法识别host,导致无法连接; 2.网络端口映射做了…

最长有效括号——力扣32

int longestValidParentheses(string s){int res=0, n=s.size();int left=0

并查集 rank 的优化(Java 实例代码)

目录 并查集 rank 的优化 Java 实例代码 UnionFind3.java 文件代码: 并查集 rank 的优化 上一小节介绍了并查集基于 size 的优化,但是某些场景下,也会存在某些问题,如下图所示,操作 union(4,2)。 根据上一小节&…

三层架构实验

6 / 100 撤消 重做历史标题 加粗 颜色 背景其他列表对齐 水平线 块引用代码 资源绑定 表格 图像 视频 公式 链接 模版 目录 投票 宽屏 使用 MD 编辑器 文章标签 经验分享 添加文章标签 添加封面 标签图热门VIP 本地上传 思路:先配三层交换机,绑通道…

Pyqt5-开源工具分解功能(配置文件+快捷写入)

开源第五篇,配置文件及参数配置,先来看个图: 上述是自动化电池监测的简图。会根据json文件中的数据从而自动写入数据。 如何自动写入数据 从GIF中可以看到,选中的输入的标签都是QLineEdit,而QLineEdit的写入文本方法是.setText(str),注意这里是写入的文本是text,字符串。…

smiley-http-proxy-servlet 实现springboot 反向代理,项目鉴权,安全的引入第三方项目服务

背景: 项目初期 和硬件集成,实现了些功能服务,由于是局域网环境,安全问题当时都可以最小化无视。随着对接的服务越来越多,部分功能上云,此时就需要有一种手段可以控制到其他项目/接口的访问权限。 无疑 反向…

亿赛通电子文档安全管理系统 RCE漏洞复现(QVD-2023-19262)

0x01 产品简介 亿赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产&…

wifi-RTL8723-RK3568

文章目录 前言一、RTL8723DU二、原理图三、设备树四、修改drivers/net/wireless/rockchip_wlan目录下文件五、修改RTL8723DU代码工程修改Makefile文件修改驱动入口函数其他说明效果前言 本文主要介绍如何在RK3568平台下,参考官方文档移植RTL8723DU这款wifi模块 提示:以下是本…

【Redis从头学-7】Redis中的Set数据类型实战场景之用户画像去重、共同关注、专属粉丝

🧑‍💻作者名称:DaenCode 🎤作者简介:啥技术都喜欢捣鼓捣鼓,喜欢分享技术、经验、生活。 😎人生感悟:尝尽人生百味,方知世间冷暖。 📖所属专栏:Re…

ffmpeg合并mp4视频文件

下载ffmpeg Download FFmpeg 2配置环境 右键此电脑-》属性-》高级系统设置 环境变量-》path 解压上面ffmpeg压缩包,找到bin目录,复制完整路径,添加到path环境变量中 测试ffmpeg ffmpeg合并MP4文件 创建一个文本文件,例如inpu…

HarmonyOS学习路之方舟开发框架—学习ArkTS语言(状态管理 五)

管理应用拥有的状态概述 LocalStorage:页面级UI状态存储 LocalStorage是页面级的UI状态存储,通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。LocalStorage也可以在UIAbility内,页面间共享状态。 本文仅介绍LocalStora…

Python土力学与基础工程计算.PDF-压水试验

Python 求解代码如下: 1. import math 2. 3. # 输入参数 4. L 2.0 # 试验段长度,m 5. Q 120.0 # 第三阶段计算流量,L/min 6. p 1.5 # 第三阶段试验段压力,MPa 7. r0 0.05 # 钻孔半径,m 8. 9. # 计算透…

SpringBoot 模板模式实现优惠券逻辑

一、计算逻辑的类结构图 在这张图里,顶层接口 RuleTemplate 定义了 calculate 方法,抽象模板类 AbstractRuleTemplate 将通用的模板计算逻辑在 calculate 方法中实现,同时它还定义了一个抽象方法 calculateNewPrice 作为子类的扩展点。各个具…

ES6 代理

一、代理 Proxy 用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。 Proxy 可以理解成,在目标对象之前架设一层“拦截”&#xff0…

比钻石还要硬硬40倍,有望被用来造宇宙飞船的新材料——碳炔

硬度是一种物理性质,它代表物质抵抗被划伤或变形的能力。硬度可以用不同的方法来测量,常见的有维氏硬度、摩氏硬度、布氏硬度等。其中,摩氏硬度是最简单也最常用的一种,它是根据不同物质之间能否互相划伤来排列出一个从1到10的等级…

nginx复现问题accept4() failed (24: Too many open files)

nginx在近两天连接数上去的时候业务有影响,错误日志频繁出现accept4() failed (24: Too many open files)报错信息,后续业务低峰自动恢复,以3种方式复现测试会报错的原因记录如下 请求模拟:使用nginx反向代理一个java后端 请求工…

MySQL数据库——SQL(4)-DCL(管理用户、权限控制)

目录 管理用户 1.查询用户 2.创建用户 3.修改用户密码 4.删除用户 示例 权限控制 1.查询权限 2.授予权限 3.撤销权限 示例 DCL总结 DCL DCL英文全称是Data Control Language(数据控制语言),用来管理数据库用户、控制数据库的访问…