[前端]Vue.js 2.5 + cube-ui —— Plan 1 : 头部组件+TAB组件+商品页面的一半+用到的知识归纳

烈火试真金,逆境试强者

课程来源于mooc网:https://www.imooc.com/

课程地址:https://coding.imooc.com/learn/list/74.html 

感谢老师提供的学习机会 

 一 header组件

预期效果:

 

开发步骤

  1.  删除了原来项目的src/assert目录、删除了HelloWorld.vue
  2. index.html 修改 锁定禁止缩放
    <meta name="viewport" 
              content="width=device-width,
                       initial-scale=1.0,
                       maximum-scale=1.0,
                       minimum-scale=1.0,
                       user-scalable=no">
  3. 新建src/common目录 用于存放资源

  4. 新建src/common/fonts 图标组件
  5. 新建src/common/stylus 
    1. base.styl 定义的基础样式
    2. icon.styl 字体图标的一些样式 引用了fonts下面的文件 
    3. index.styl 内部import icon和base
    4. mixin.styl 引用到cube-ui中的styl
      @import "~cube-ui/src/common/stylus/mixin.styl"
    5. variable.styl  引用了cube-ui的变量 并定义背景色和主题色

  6. 代码import index 引入了stylus里的icon和base
    import 'common/stylus/index.styl'
  7. 新建文件夹 src/components/support-ico 把所有的icon做成一个组件,区别在于类型不一样,1,2,3,4种尺寸
    1. support-icon.vue 组件编写都是通过.vue的方式开发 分为三个部分<template><script><style>
    2. <template> span标签 有一个动态绑定的class  class="iconCls" 根据script的标签
    3. <sccript>  定义计算属性 定义iconCls()计算属性方法给template调用  iconCls种的classMap对应了style中的区分名字
    4. <style> 不同类型去引用不同的图片 要用两个东西,一个是common目录下的mixin.styl 一个是
      
          const path = require('path')
      
          function resolve(dir){
            return path.join(__dirname,dir)
          }     
      
      
          chainWebpack(config){
            config.resolve.alias
              .set('components',resolve('src/components'))
              .set('common',resolve('src/common'))
          }
      1.  "~" 是相对路径
      2. 可以去vue.config.js 下配置一个 chainWebpack 的函数 __dirname是用path拿到的当前目录路径的绝对地址,所以就是项目路径配上resolve后面的地址
  8. 新建文件夹 src/components/v-header 头部组件
    1. 接收的是个seller对象,所以数据通过seller得到
    2. 组件所依赖的图片是放在组件目录同级以下
    3. 原则上字体和颜色都用变量
    4. 要记得赋初值 default(){return {}}
    5. <div v-if="方法名.属性名"> 使用v-if防止深层引用报错
    6. 修改App.vue
    7. components 注册定义的VHeader,在外层获取数据,通过prop再传给各个组件,因为这些数据需要共用
      <template>
        <div id="app">
          <v-header></v-header>
        </div>
      </template>
      
      <script>
      import VHeader from 'components/v-header/v-header'
      
      export default {
        name: 'app',
        components: {
          Vheader
        }
      }
      </script>
      <style lang="stylus">
      </style>
      
    8. 修改.eslintrc.js 规则配置
      1. 'space-before-function-paren':0, 左括号旁边加空格忽略

      2. 'indent':0   忽略缩进

  9.  兼容第三方数据处理axios:一个非常流行的Http库
    1. git地址:https://github.com/axios/axios

    2. 安装:npm i axios --save   代码中引用axios作为依赖安装

学习方法这样不行,到现在我项目竟然运行不起来,简单介绍一下后面学到的内容,修改一下学习计划:

  1. 快速把视频过完,记录关键信息
  2. 把源码下载下来,调试到可以运行
  3. 成功运行项目后,根据源码分组件看代码
  4. 计划天数不变

头部组件注意事项:

  1. 数据使用axios封装API请求
  2. 弹出全屏遮罩使用Cube的组件,自动加载到body标签中,visiable控制显示

 

Tab组件注意事项:

  1. 使用cube组件可以通过 >>> 运算符修改CSS样式 
  2. 开发过程中,不要出现写死的东西
  3. 与下面联动的时候可以通过计算相对位置值,记得坐标取值是负数
  4. 注意取消cube的缓动效果

商品页面注意事项:

  1. 使用cube组件,使用 >>> 修改默认参数
  2. 注意上下左右的滑动的相对位置计算
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值