Vue 项目 尚品汇(一)

news2024/11/18 9:26:07

一、开发环境构造

Vue-cli 脚手架初始化项目

node 平台 和 webpack 和 淘宝镜像 环境

(一)脚手架

1.安装脚手架

在我们的项目文件夹中路径输入 cmd 然后在终端中输入 vue create app(项目名) 

选择 vue 2 然后安装 (因为是基于 vue2 开发的)

2.脚手架内容介绍

1)node_modules :项目依赖文件夹

就是我们开发依赖的一些资源和框架

@babel 把 es6 的语法转化成 es5

@vue 框架

2)public:静态资源文件夹

单页面的 html 文件 和 图标

放到 public 文件夹中的静态资源 webpack 打包的时候会原封不动的打包到 dist 文件夹中

3)src :源代码文件夹

程序员源代码文件夹,程序员开发使用的

assets:静态资源 但是一般是多个组件共用的静态资源

放到 assets 文件夹中的静态资源 webpack 打包的时候会将静态资源当作一个模块打包到 JS 文件夹中

components:放非路由组件,常用的全局组件

App.vue 项目中唯一的根组件

main.js:程序的入口文件 最开始执行的文件 

gitgnore :git 的忽略文件 一般不碰

4)babel-config.js;配置文件

 babel 相关 一般不碰

5)package.json :项目介绍

可以看成项目的身份证,项目叫什么,有哪些依赖,怎么运行里面都有

6)package-lock.json:缓存性文件

依赖从哪下的 都有记录 第二次下的速度会变快 因为有缓存

7)readme.md :说明文件

对脚手架项目使用和说明的认知 里面有一些指令可以使用

3.运行浏览器自动打开网页

package.json  文件中修改属性 在后面加上一句 空格 --open 

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

4.eslint 校验功能关闭

有时候声明变量不适用就报错我们不想这么轻易就报错 影响我们使用我们就直接关了

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

里面配置如下即可关闭

module.exports = {
  lintOnSave: false
}

5.src 文件夹配置别名 @

在 jsconfig.json 文件中配置如下

遇见 @ 文件就当成 src 文件夹 未来文件过多 找的时候方便很多

但是不能在 

 "node_modules",

    "dist"

这两个文件夹中使用

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

二、项目路由分析

(一)路由回顾

vue-router

前端路由 可以看成 kv 键值对 

key:url 地址栏中的路径

value:相应的路由组件

(二)拆分

网页有上中下三部分

上下不变 中间变所以拆分结果为

路由组件:

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

非路由组件:

Header

都有头部的组件

Footer

有的没有 footer 组件

注意1:

开发项目 不以html css 为主 主要涉及业务逻辑

开发顺序:

1.书写静态页面

2.拆分组件

3.通过 axios 获取服务器的数据进行动态展示

4.完成相应的动态的业务逻辑

创建组件时 组件结构 组件样式 组件资源 这三个部分都要有 而且要放到正确的位置

注意2:

我们的项目采用 less 的样式 浏览器不识别 less 样式 我们通过 less,less-loader 进行处理

变成 css 样式 浏览器就能识别了

安装依赖:npm install less

而且还得 让组件识别 less style 里面就加上 lang=less 即可

三、使用组件的步骤(非路由组件)

放在 components 文件夹中

(一)创建或者定义

创建新的组件 新建文件/文件夹

先粘贴 结构(html) 再粘贴样式(css) 然后还有图片等静态资源

(二)引入

在根组件 App 中引入新创建的组件

清除默认样式 引入 reset.css 文件清除默认的 css 样式

(三)注册

在 App 中 用 components 注册组件

(四)使用

在App 中 使用组件标签使用

四、路由配置使用

(一)处理路由组件

非路由组件放在 components 文件夹中,路由组件放在 pages/views 文件夹中

根据刚才分析的结果 应该有四个路由组件

(二)路由配置

配置的路由放在 router 文件夹中

1.在 router 文件夹中配置路由

因为 vue-router 是路由中的一个插件 所以得引入 vue 然后再引入 vue-router

2.引入路由组件 

3.配置路由

4.在入口文件中 引入路由

5.设置路由显示的位置

在 App 中 头部尾部标签中间 放一个 router-view 标签 就会显示到这里

6.定向首页

{
      path: "*",
      redirect: '/home'
    },

(三)路由跳转

 router-link 声明式路由导航 得有to 属性

把 a 标签跳转别的页面的标签都替换成 router-link 然后配置 to 属性

push/replace 编程式路由导航

如果不是 a 标签就用这个 绑定点击事件 然后回调函数里面使用 push/replace 来跳转 

this.$router.push('跳转路径')

(四)路由组件显示和隐藏

根据组件身上的 route 属性 获得当前路由的信息,通过路由路径判断 Footer 的显示和隐藏

通过 v-show 直接就能实现 但是 给路由配置 meta 属性比较好(配置路由元信息) 

路由中有这个信息

(五)路由传参

路由跳转的时候顺便把数据也传过去

搜索栏搜索时我们得把参数带过去 就得用到路由传参

搜索的时候通过按钮把参数传给 /search 路由

params 参数:属于路径中的一部分,配置路由时需要占位

1.字符串形式

query 参数 :不属于路径的一部分 类似于 ajax 中 的queryString /home?k=v&k=v 不需要占位

2.模板字符串形式 

前面时 parmas 参数 后面是 query 参数

3.对象形式 

需要给路由起个名字 name 指定给谁传数据

里面 params query 参数都能写

小面试题:

面试题1:

面试题2: 

在路由中加入一个问号就能解决 可传可不传的问题,代表params 参数可传可不传

面试题3:

面试题4:

为了组件用我们传的数据方便一点 但是不太用

正常路由跳转 和 发送数据

1.布尔型

首先在路由中 添加一个布尔类型的属性 props 只能传递 params 参数

接收 参数 props 就能接收到我们传入的 keyword

2.对象型

给 props 里面写成对象 能额外传递一些 props

直接接收 a b 就能用

3.函数型

返回的 props 数据是 箭头函数 有一个参数就是 $route 里面可以返回 query 型 和  params 型

接收数据 keyword 和 k

(六)编程式导航的错误

1.提出问题

编程式路由 跳转到 当前路由(参数不变)多次执行会抛出 NavigationDuplicated 的警告错误

路由跳转有两种形式 声明式导航 编程式导航

声明式导航 没有这种问题 

编程式导航有这种问题 因为 最新的 vue-router 引入了 promise 没有回调

返回一个 promise 对象 我们需要给一个成功或者失败的回调 但是我们没有

2.解决问题(不完全)

我们把正确和失败的回调都写上即可 虽然为空 但是可以解决这个问题 但是治标不治本 在别的组件中 有 push 和 replace 编程式导航还是有这个问题

3.完全解决

this 是当前组件实例 search

this.$router属性:当前属性 属性值VueRouter 类的一个实例 当在入口文件给文件注册路由的时候 给组件添加  $router $route 属性

push:是VueRouter 类的一个实例

所以我们得重写一下VueRouter 原型对象上的 push 方法

先保存一下

总结

路由知识前面 vue2 笔记中都有不多做叙述

路由非路由组件区别

文件夹不同 components pages/Views

使用方式不同 一个是注册使用 一个是标签 

都有 $route $router属性

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

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

相关文章

Object类的公共方法面试问题及回答

1. 什么是 Object 类? 答: Object 类是 Java 中所有类的超类。每个类都使用 Object 作为树的根,所有对象(包括数组)都实现这个类的方法。 2. Object 类中有哪些重要的方法? 答: equals(Obje…

上海开放大学《Java程序基础课程实验1》形考作业线上实践答案

答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 答案:更多答案,请关注【电大搜题】微信公众号 上 海 开 放 大 学 学生实验报告 分校(站&…

启明云端2.4寸屏+ESP32-S3+小型智能调速电动家用除草机案例 触控三档调速,能显示电压故障码

今天给大家分享个启明云端2.4寸屏ESP32-S3小型智能调速电动家用除草机案例,国外有草坪文化,这个机器能智能触控三档调速,带屏能显示电压故障码,数显档位(3档最大),触控屏,长按3秒就能…

【氮化镓】GaN 器件的高温运行

《High Temperature Operation of E-Mode and D-Mode AlGaN/GaN MIS-HEMTs With Recessed Gates》,由HANWOOL LEE, HOJOON RYU, JUNZHE KANG, 和 WENJUAN ZHU (IEEE高级会员) 四位作者共同撰写,发表在《IEEE Journal of the Electron Devices Society》上…

和丰多媒体信息发布系统 QH.aspx 文件上传致RCE漏洞复现

0x01 产品简介 和丰多媒体信息发布系统也称数字标牌(Digital Signage),是指通过大屏幕终端显示设备,发布商业、财经和娱乐信息的多媒体专业视听系统,常被称为除纸张媒体、电台、电视、互联网之外的“第五媒体”。该系统基于Web的全B/S先进架构,支持大用户数、大并发数及…

LeetCode题练习与总结:删除排序链表中的重复元素Ⅱ--82

一、题目描述 给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。 示例 1: 输入:head [1,2,3,3,4,4,5] 输出:[1,2,5]示例 2: 输入:…

容器的通俗讲解:轻松理解容器技术

文章目录 什么是容器?容器与虚拟机的区别容器如何工作?容器的优势容器的应用场景常见容器技术相关解决方案 在当今的软件开发领域,容器技术已经成为一种异常流行的技术,但对于初学者来说,容器究竟是什么以及它们如何工…

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

Stm32CubeMX 为 stm32mp135d 添加网卡 eth 一、启用设备1. eth 设备添加2. eth 引脚配置2. eth 时钟配置 二、 生成代码1. optee 配置2. uboot 配置3. linux 配置 bringup 可参考:Stm32CubeMX 生成设备树 一、启用设备 1. eth 设备添加 我这里只启用一个eth设备&…

容器组_概述

📕作者简介: 过去日记,致力于Java、GoLang,Rust等多种编程语言,热爱技术,喜欢游戏的博主。 📘相关专栏Rust初阶教程、go语言基础系列、spring教程等,大家有兴趣的可以看一看 📙Jav…

Vitis HLS 学习笔记--S_AXILITE 寄存器及驱动

目录 1. 简介 2. S_AXILITE Registers 寄存器详解 2.1 “隐式”优势 2.2 驱动程序文件 2.3 硬件头文件 2.4 硬件头文件中 SC/COR/TOW/COH 的解释 2.5 驱动控制过程 3. 总结 1. 简介 回顾此博文《Vitis HLS 学习笔记--Syn Report解读(1)-CSDN博…

程序员与土地的关系

目录 一、土地对人类的重要性 二、程序员与土地的关系 二、程序员如何利用GIS技术改变土地管理效率? 四、GIS技术有哪些运用? 五、shapely库计算多边形面积的例子 一、土地对人类的重要性 土地资源对人类是至关重要的。土地是人类赖…

国产操作系统上如何比较软件版本 _ 统信UOS _ 麒麟KOS _ 中科方德

原文链接:国产操作系统上如何比较软件版本 | 统信UOS | 麒麟KOS | 中科方德 Hello,大家好啊!在国产操作系统上管理软件版本是确保系统安全性和功能稳定性的关键一环。今天,我将向大家展示如何通过编写脚本在国产操作系统上检查软件…

JAVASE练手项目-ATM

此项目使用到的技术主要是面向对象和JAVA的常用API和ArrayList实现。可以用来做JAVA的基础练手或者是期末作业。 主要功能是:用户开户,登录,存钱,取钱,转账,注销,修改密码。 注:下…

【消息队列】RabbitMQ五种消息模式

RabbitMQ RabbitMQRabbitMQ安装 常见的消息模型基本消息队列SpringAMQPWorkQueue消息预取发布订阅模式Fanout ExchangeDirectExchangeTopicExchange 消息转换器 RabbitMQ RabbitMQ是基于Erlang语言开发的开源消息通信中间件 官网地址:https://www.rabbitmq.com/ R…

python 反引号怎么打

切换到英文输入法模式下。 找到电脑键盘 Esc 下面的键。 敲两下就出现反引号了。

在一台交换机上配置VLAN

实验环境 实验拓扑图结构如图12.12所示,其中PC1和PC3属于VLAN 2,PC2属于 VLAN 3,PC1的IP地址为192.168.0.2/24,PC2的IP地址为192.168.1.2/24,PC3的 IP地址为192.168.0.3/24。 图12.12 需求描述 要求处于相同VLAN中的主…

正版Office-Word使用时却提示无网络连接请检查你的网络设置 然后重试

这是购买电脑时自带的已经安装好的word。看纸箱外壳有office标记,但是好像没有印系列号。 某天要使用。提示:无网络连接请检查你的网络设置。 经过网上高手的提示: 说要勾选勾选ssl3.0、TLS1.0、1.1、1.2。 我的截图 我电脑进去就缺1.2. …

【数据结构】串?在计算机中还有这样一种数据结构

串的基本概念与基本操作 导言一、串的定义及其重要术语1.1 串的定义1.2 串的重要术语1.3 ASCII码值1.4 转义字符 二、串的三要素2.1 串的逻辑结构2.2 串的存储结构2.3 串的运算 结语 导言 大家好,很高兴又和大家见面啦!!! 看到今…

手把手实现一个简约酷美美的版权声明模块

1. 导语 版权声明在很多网站都有用到,出场率还是很高的。所以今天就实现一个属于自己分风格的版权声明模块,技术上采用原生的前端三剑客: HTMLCSSJavaScript(可能会用到) 比如CSDN的版权声明是这样的 2. 需求分析 先看看成品吧,这篇文字结…

初始计算机网络

TCP/IP TCP/IP模型 TCP/IP网络模型:对于不同设备之间的通信,就需要网络通信,而设备是多样性的,所以要兼容多种多样的设备,就协商出了一套通用的网络协议。 TCP/IP分层 这个网络协议是分层的,每一层都有…