项目vue2.0仿外卖APP(四)

组件拆分

先把项目搭建时生成的代码给清了吧

现在static目录下引入reset.css

接着在index.html引入,并且设置<meta>

有时候呢,为了让代码符合我们平时的编码习惯,我们可以在ESLint进行设置,如下:

回到入口js文件main.js,为了好看,我们给它加上分号:

不过这是就会报错了:

所以要到eslintrc.js去设置(上面对应可以去官网查看怎么配置),使它接受这样的编码方式。

 

现在的App.vue如下:

然后我们编写组件来替换那三个区块。

创建header组件

将header用到App.vue里面:

Components后面要有空格。

这里还要安装一个stylus-loader依赖,不然会报错。

这里提供一个依赖包的安装方法:到package.json,在里面添加所需要的最新版本的包,然后再cnpm install ,这样就可以添加到node_modules里面了,运行cnpm run dev。

基本的组件结构就是这样:

接下来再利用flex布局设置它的样式。

vue-router

因为在单页应用中,内容区块有三部分,所以这时候要用到路由vue-router

http://router.vuejs.org/zh-cn/installation.html

同样通过package.json来安装。

vue-router的用法:http://router.vuejs.org/zh-cn/essentials/getting-started.html

vue-router1.x与vue-router2.0变化还是挺大的。

可以参考下面两个链接:

官网的写法:http://router.vuejs.org/zh-cn/essentials/getting-started.html

参考:https://segmentfault.com/q/1010000007929093/a-1020000007929260

如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)。在通过use()这个方法,相当于安装插件。

参照官网给的vue-router的过程:

// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)// 1. 定义(路由)组件。
// 可以从其他文件 import 进来
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }// 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器,
// 或者,只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
const routes = [{ path: '/foo', component: Foo },{ path: '/bar', component: Bar }
]// 3. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({routes // (缩写)相当于 routes: routes
})// 4. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
const app = new Vue({router
}).$mount('#app')// 现在,应用已经启动了!

 

App.vue的模板:

main.js

当然,这里还有用到很多组件:goodssellerrating,所以还要创建。比如:

ratings:

 

最终完成的结果如下:

这里还有一个问题:就是在我们进入这个页面的时候,页面是不会加载内容出来,需要我们收订去点击goods、ratings、seller三块中的一块才可以。为了有内容,这是我们就要用到导航了,页面加载直接导航到goods的内容。所以要添加这一句:

router.push('/goods');

http://router.vuejs.org/zh-cn/essentials/navigation.html

 

注意,这个router.push('/goods')要写在app之前的位置。

一些vue2.0的修改可以看这里:https://segmentfault.com/a/1190000006623100

接下来就是写样式了。

还有一个样式就是高亮

当页面呈现出来后,我们可以在查看元素里面可以看到,当我们点击某一项时,会自动添加一个router-link-activeclass,所以可以直接配置这个class的样式就可以出现点击后高亮了。

.router-link-activecolor: rgb(240, 20, 20)

1像素border实现

border-bottom: 1px solid rgba(7, 17, 27, 0.1)

直接在.tab加这句话可以实现,但是在移动端看到的就不是这样的,因为手机端有个dpr的概念:http://mobile.51cto.com/web-484304.htm物理像素是设备像素的两倍。

https://segmentfault.com/a/1190000004538413

怎么做到1像素?

因为比较通用,所以定一个通用文件:mixin.styl

然而这里并没有实现1像素,需要对它进行缩放:

添加一个类:border-1px,再建一个base.styl

要依赖所有的公共样式,用一个index.styl

接着再main.js引入index.styl

还要在webpack做配置

这样我们就可以通过这种方式去引用commonimport 'common/stylus/index.styl';

重新运行,出问题了:

这是因为在之前图标字体的icon.stylsrc依赖的是font下面的目录,这个现在就不行了,改成这样:

总结一像素的实现:伪类+缩放(用一个class

这样基本框架已经搭建好了,接下来就来开发组件。

 

转载于:https://www.cnblogs.com/Chen-XiaoJun/p/6249338.html

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

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

相关文章

手机技巧:常见的Note、Max、Pro、Plus、Mate系列介绍,看完你就懂了!

目前主流的手机厂商都会以Note、Max、Pro、Plus、Mate来区分手机的品牌系列&#xff0c;可能会有一些朋友比较好奇&#xff0c;今天小编带大家来了解一下Note、Max、Pro、Plus、Mate这些代表的含义&#xff0c;为什么大的手机厂商青睐用这些单词来打造自己的手机品牌市场&#…

APP技巧:安卓原生跨屏协同终于来了,还能和 Windows「隔空投送」

谷歌在 CES 2022 上宣布了至少 13 种不同的新软件功能&#xff0c;从类似 AirPods 的快速切换到此前承诺过的软件&#xff0c;可以在 Chromebook 上镜像你的 Android 文本应用程序等。这是谷歌称为“Better Together”的计划的一部分&#xff0c;外界认为谷歌是想追赶苹果生态系…

事务的特性及事务的隔离级别(转)

原文&#xff1a;http://www.cnblogs.com/fjdingsd/p/5273008.html 本篇讲诉数据库中事务的四大特性&#xff08;ACID&#xff09;&#xff0c;并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作&#xff0c;那么该数据库必须要具备以下四个特性&#xff1…

操作系统:SFTP相关知识介绍

目录 1、SFTP是什么&#xff1f; 2、SFTP组成 3、SFTP验证连接方式 4、SFTP常用命令 4.1 登录 4.2 SFTP Shell 基本操作 4.3 下载服务器文件到本地 4.4 上传本地文件到远程服务器 今天给大家分享SFTP相关知识&#xff0c;希望对大家能有所帮助&#xff01; 1、SFTP是什么&#…

超级好看的14 款 Chrome 官方主题,有你喜欢的吗?

今天给大家安利 14 款颜值绝绝子的 Chrome 官方主题&#xff0c;均由 Chrome 官方团队出品。个人强推第一款海洋绿&#xff0c;拉升逼格。1、海洋绿2、经典蓝3、午夜黑4、玫瑰金5、深蓝6、石板蓝7、紫色8、宁静蓝9、黑与白10、灰色11、香蕉黄12、金银花13、多彩14、粉紫海洋绿海…

电脑技巧:加装SSD固态硬盘注意事项,电脑速度超流畅

直至今天&#xff0c;加装SSD固态已然成为旧电脑升级的“必选项”之一。其实&#xff0c;在win10系统中有许多相关设置&#xff0c;都可以让SSD固态硬盘充分发挥实力&#xff0c;只是有部分选项通常需要我们自己设置。除了这些设置以外&#xff0c;我们还需要注意的是&#xff…

TestNG 入门教程

原文出处&#xff1a;http://www.cnblogs.com/TankXiao/p/3888070.html 阅读目录 TestNG介绍在Eclipse中在线安装TestNG在Eclipse中离线安装TestngTestNG最简单的测试TestNG的基本注解TestNG中如何执行测试使用testtng.xml 文件执行 case TestNG按顺序执行CaseTestNG异常测试Te…

mysql去重DISTINCT

在字段前面加上DISTINCT关键字就可以

电脑技巧:电脑弹窗广告三个解决方法

目录 一、开启高级阻止程序 二、禁用任务计划里面的弹窗程序 三、隐藏“弹窗广告”程序 相信很多朋友在使用电脑时&#xff0c;面对突如其来的弹窗广告非常愤怒&#xff0c;尤其是在给客户演示ppt、或者开会投屏的时候&#xff01;自己啥都没干&#xff0c;却平白无故弹出来许多…

FlashBuilder项目环境配置

一 、安装Flash Builder 1. 修改host文件 1.1 找到host文件&#xff0c;复制到桌面修改。 在“C:\Windows\System32\drivers\etc”文件夹下&#xff0c;将host文件复制到桌面。 1.2 修改host文件 打开host&#xff0c;增加以下链接&#xff0c;直接复制到最后即可。 127.0.0.…

办公技巧:分享100个Excel快捷键

今天给大家分享100个Excel快捷键&#xff0c;值得收藏&#xff01; 1、CtrlC 复制 2、CtrlV 粘贴 3、CtrlA 全选 4、Ctrl 显示公式 5、CtrlN 新建工作簿 6、CtrlD 单元格 7、CtrlR 单元格内容向右复制 8、CtrlPage up 移动到上一个工作表 9、CtrlPage down 移动到下一个工作表 …

Linux操作系统启动流程简单介绍

Linux 系统的启动&#xff0c;从计算机开机通电自检开始&#xff0c;一直到登陆系统&#xff0c;需要经历多个过程。了解 Linux操作系统的启动过程&#xff0c;对Linux操作系统更深入认识和日常的运维工作非常有帮助&#xff0c;感兴趣的朋友可以了解一下。 今天主要介绍一下Ce…

mysql使用 CONCAT(字段,字段) 函数拼接

SELECT CONCAT(字段,字段) AS 别名 FROM 表名;

APP技巧:手机连接WiFi后,移动数据流量要不要关闭,看完你就懂了

目录 1、流量耗尽 2、电量不够用 3、下载任务 在移动互联网普及的今天&#xff0c;大家想上网是非常容易的一件事情。打开手机数据流量一秒钟就能连接上互联网&#xff0c;享受网络带来的乐趣。不论是刷视频看电影还是下载需要的文件&#xff0c;统统都能够通过移动数据来搞定。…

后台管理工程搭建

Maven使用Maven作为后台管理工程的构建工具&#xff0c;主要用到了以下功能 依赖管理&#xff1a;包括jar的依赖&#xff0c;工程之间的依赖 项目构建&#xff1a;实现项目的一步构建 工程聚合、继承、依赖 Maven工程类型&#xff1a;war、jar、pom taotao-parent 父工程的搭建…