外卖项目初始化01

news/2024/7/5 3:05:49

sell-app-day01

  • 项目的搭建
    • 创建项目
    • 仓库(把代码上传上去,切换个人分支)
    • 工程化scss
      • reset.scss
      • main.scss [统一的出口]
      • common.scss [公共的样式]
      • vant.scss [覆盖vant的样式]
      • var.scss 【变量的文件,
        • css3 的变量
          • 一键切换皮肤 【了解一下】
      • mixin.scss
    • 屏幕适配 【
      • px 转换成 vw
    • axios的配置(token)
    • 环境变量
  • 路由划分
  • vant引入
  • 商家信息
    • 接口: http://1.15.179.44:3001/ , http://129.211.169.131:5000
  • 商品信息
    • 接口

项目介绍

  • 参考地址

  • 用户的群体:给点外卖的用户。

  • 功能点:

    • 首页

      • 商家信息
        • 模糊效果
      • 商品 【重点】
        • 基本的页面的渲染
        • 滚动效果的制作
          • 左联右 【简单】
          • 右联左【需要自己去计算】
        • 商品页面与购物车组件联动
          • vuex 【重点】
      • 商家
      • 评价
    • 详情页面

      • 页面之间的通信【重点】

手机端适配

讲道理设计师只会给一份手机端项目设计稿(375px 750px)。

例子: 假设设计稿的宽度为750, 在设计稿上量出一个div的宽度为375px

真机的宽度实际宽度屏幕(视口)占比vw
375px187.5px50%50vw
414px207px50%50vw
912px456px50%50vw

css3出了一个新的单位: vw。vw:视口(屏幕的宽度)的百分之1。

结论:将px单位转换为vw单位,就能够适配到各个手机端。等比的缩放

px转换为vw不需要开发者自己去算,有第三方插件: postcss-px-to-viewport

postcss-px-to-viewport配置

  • 搜索文档: postcss-px-to-viewport npm

  • 安装插件: yarn add postcss-px-to-viewport -D

  • 在项目的根目录下创建文件: postcss.config.js

  • 在postcss.config.js中编写配置

    module.exports = {
        plugins: {
            // 插件: 将px转换为vw
          'postcss-px-to-viewport': {
            // 设计稿宽度,你在设计稿上量出的宽度,不用自己划算,直接写。
            viewportWidth: 750,
          }
        }
    }
    
  • 重启

  • 测试

    • 给项目中的一个div加一个宽高,然后再浏览器切换机型,看他具体的大小

css3变量【了解!!】

scss/less变量

这个变量设置之后,并不是全局使用。你需要在使用的地方进行导入。

场景: 设置一系列全局变量。 在类名为.box下注入一个变量。

css3的变量

可以设置全局/局部的变量。

  • 全局: 给最外层的节点注入一个变量
  • 局部: 给某一个节点设置一个局部变量

特点:

  • 可以很方便的被覆盖,很多ui组件库都在使用

主题色切换方案

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HQQI73Xd-1686557829956)(…/resource/md/1.主题色切换.png)]

  • 创建一个var.scss,定义三套主题色

    // scss的变量页没有全局变量  【哪里需要哪里引入】
    $main_color: #ff6900;
    
    // css3的变量
    
    // 全局的变量
    // 
    :root {
        --base-color: #ff6900;
    }
    
    // 根节点 下面的某一些节点(有一个属性叫做 theme     属性的值为red)
    :root [theme="red"] {
        --base-color: red;
    }
    
    
    :root [theme="gray"] {
        --base-color: #ccc;
    }
    
  • 在main.scss中引入变量文件(var.scss)

    @import './reset.scss';
    @import './common.scss';
    @import './vant.scss';
    @import './var.scss';
    
  • 在main.js下全局注册main.scss

    • import ‘@/assets/style/main.scss’
  • 在App.vue 去指明主题

    <div id="app" :theme="theme" >
        <nav>
          <router-link to="/">Home</router-link> |
          <router-link to="/about">About</router-link>
        </nav>
    	<button @click="theme = 'red'">过年</button>
        <button @click="theme = ''">默认</button>
        <button @click="theme = 'gray'">灰色</button>
        <router-view/>
      </div>
    
    data() {
        return {
            // 默认的
           theme: '' 
        }
    }
    
  • 在所有的组件中通过var取base-color

    <style scoped lang="scss">
        .theme-wrapper {
            color: var(--base-color);
        }
        .container {
            width: 50px;
            height: 50px;
            background: var(--base-color);
        }
    </style>
    

vant的引入

vant是一系列: 微信小程序(vant weapp),vue2 (vant2.x), vue3(vant4.x)。官网

  • 安装

    • yarn add vant@latest-v2
  • 在页面中按需引入

    import Button from 'vant/lib/button';
    import 'vant/lib/button/style';
    

    在页面中引入组件,引入它对应的样式。注册使用

  • 全局,把所有组件都变成全局组件(类似于elementui)

    import Vant from 'vant';
    import 'vant/lib/index.css';
    // Vant是一个对象,这个对象一定有一个方法: install
    
    Vue.use(Vant);
    

在main.js中引入样式,引入所有组件, use一下

  • 全局,把你需要的组件,注册成全局。样式我们全局引入

    import 'vant/lib/index.css';
    import { Button, Tabs } from 'vant';
    
    // 只把Button注册成全局组件
    Vue.use(Button).use(Tabs)
    
    

    我们这次采用这个

better-scroll的使用

官方链接

  • 满足三个条件

    • 滚动容器高度固定
    • 滚动容器下只有一个节点(div)
    • 滚动的内容 > 滚动容器
  • 安装 BS

    • yarn add @better-scroll/core
      
  • 导入

    import BS from '@better-scroll/core'
    
  • 初始化BS

    // 字符串: #box   
    // dom节点
    new BS(滚动容器, {
        一些配置
    })
    

http://lihuaxi.xjx100.cn/news/1237387.html

相关文章

Jenkins部署报错问题:已解决

一.Jenkins不能下载插件 报错sun.security.provider.certpath.SunCertPathBuilderException sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetat sun.security.provider.certpath.SunCertPathBuild…

自动测试LeetCode用例方法

自动合并测试LeetCode解题方法 在leetcode.com上答题&#xff0c;Run Code或者Sumbmit通常要Spending一会&#xff0c;如果提交一次就Accepted那还好&#xff0c;如果反复Wrong Answer&#xff0c;很耽误时间。为了调高效率和减少挫折(来回提交&#xff0c;一直Wrong Answer倍…

银河麒麟kylin v10 apt deb包问题记录

银河麒麟kylin v10 apt deb包问题记录 https://www.kylinos.cn/support/document/48.html 该补丁支持银河麒麟桌面操作系统V10 2101、V10 0402、V10 0416版本升级到银河麒麟桌面操作系统V10 2107。 下载链接如下 &#xff08;1&#xff09;官网下载链接&#xff1a; AMD64…

c# MES 对接之二(MQTT、Restful、RabbitMQ)

//以下是C# MES对接的示例代码&#xff1a; //1. MQTT //使用M2Mqtt库实现C#与MQTT的通信&#xff0c;示例代码如下&#xff1a; //csharp using System; using System.Text; using uPLibrary.Networking.M2Mqtt; using uPLibrary.Networking.M2Mqtt.Messages; class Progr…

【实战】minigpt4的体验和微调

MiniGPT-4 https://github.com/vision-cair/minigpt-4 1 环境配置 1.1 安装环境 git lfs install //如果报错 &#xff1a;git: lfs is not a git command. See git --help. //尝试使用&#xff1a; sudo apt-get install git-lfs git lfs install1.2 准备Vicuna权重 &…

初识Notes Domino 14 Drop1

大家好&#xff0c;才是真的好。 周末花了点时间&#xff0c;安装了一下Notes Domino 14 Drop1版本。考虑到大多数人的习惯&#xff0c;没采用Docker或K8s方式来部署&#xff0c;也没采用一键配置功能&#xff0c;依旧通过传统方式一步一步进行安装和配置&#xff0c;这样大家…

从微观世界的RST包文视角助力企业网络应用故障排查和优化

1. 前言 随着互联网的普及和发展&#xff0c;各行业的业务和应用越来越依赖于网络。然而&#xff0c;网络环境的不稳定性和复杂性使得出现各种异常现象的概率变得更高了。这些异常现象会导致业务无法正常运行&#xff0c;给用户带来困扰&#xff0c;甚至影响企业的形象和利益。…

Vue3-04-生命周期

Vue 的生命周期描述组件从创建到销毁的全过程。Vue3 和 Vue2 的生命周期钩子非常像&#xff0c;我们仍然可以在相同的场景下使用相同的钩子函数。 Vue3 在设计时对先前的版本进行了向下兼容&#xff0c;如果你的项目还在使用选项式 API 进行构建&#xff0c;那么不需要修改生命…