音乐播放器(一)

vue-cli

runtime + compiler可以不基于.vue文件去开发,我们可以在运行时做编译;如果选runtime-only省略了模版的编译过程,编译过程是在webpack用vue-loader去编译.vue文件的时候去做的.vuejs的大小会变小6kb,我们就得依赖.vue文件的开发。

ESLint

在用vue-cli初始化vue项目时会询问是否使用ESLint,eslint是es6的代码风格检查器,可以统一代码的风格,并且可以帮助检查一些非常初级的错误.中文文档ESLint,配置在.eslintrc.js的plugins的rules里面.

module.exports = {
  root: true,
  parser: 'babel-eslint',
  parserOptions: {
    sourceType: 'module'
  },
  env: {
    browser: true,
  },
  // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
  extends: 'standard',
  // required to lint *.vue files
  plugins: [
    'html'
  ],
  // add your custom rules here
  'rules': {
    // allow paren-less arrow functions
    'arrow-parens': 0,
    // allow async-await
    'generator-star-spacing': 0,
    // allow debugger during development
    'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
    'eol-last': 0,
    'space-before-function-paren': 0
  }
}

stylus

stylus写出来的css结构层次感特别清晰,参考的文档Stylus

mixin

// 背景图片
bg-image($url)
  background-image: url($url + "@2x.png")
  @media (-webkit-min-device-pixel-ratio: 3),(min-device-pixel-ratio: 3)
    background-image: url($url + "@3x.png")

// 不换行
no-wrap()
  text-overflow: ellipsis
  overflow: hidden
  white-space: nowrap

// 扩展点击区域
extend-click()
  position: relative
  &:before
    content: ''
    position: absolute
    top: -10px
    left: -10px
    right: -10px
    bottom: -10px

把css的效果写成函数的形式,方便调用

variable

variable.styl可以根据设计的一些规范,去定义一些变量,这样去使用样式的时候就不用一个一个去手写了.

// 颜色定义规范
$color-background = #222
$color-background-d = rgba(0, 0, 0, 0.3)
$color-highlight-background = #333
$color-dialog-background = #666
$color-theme = #ffcd32
$color-theme-d = rgba(255, 205, 49, 0.5)
$color-sub-theme = #d93f30
$color-text = #fff
$color-text-d = rgba(255, 255, 255, 0.3)
$color-text-l = rgba(255, 255, 255, 0.5)
$color-text-ll = rgba(255, 255, 255, 0.8)

//字体定义规范
$font-size-small-s = 10px
$font-size-small = 12px
$font-size-medium = 14px
$font-size-medium-x = 16px
$font-size-large = 18px
$font-s

配置目录别名

前端目录的别名配置在build目录下webpack.base.conf里面的alias里面

resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      '@': resolve('src'),
      'common': resolve('src/common'),
      'components': resolve('src/components'),
      'base': resolve('src/base'),
      'api': resolve('src/api')
    }
  }

配置了就可以直接使用这些目录别名了

path.join

这是node的模块path里面的方法,path.join()方法可以连接任意多个路径字符串。要连接的多个路径可做为参数传入。path.join()方法在接边路径的同时也会对路径进行规范化

var path = require('path');
//合法的字符串连接
path.join('/foo', 'bar', 'baz/asdf', 'quux', '..')
// 连接后
'/foo/bar/baz/asdf'
path.join(__dirname, '..', dir)
//__dirname这个变量名指的是当前目录,'..'表示向上查找,找到dir这个目录

path.resolve

这是node的模块path里面的方法,path.resolve()方法可以将多个路径解析为一个规范化的绝对路径。其处理方式类似于对这些路径逐一进行cd操作,与cd操作不同的是,这引起路径可以是文件,并且可不必实际存在
这里的resolve和path.resolve()方法不一样,这里的resolve是自己构造的函数

function resolve(dir) {
  return path.join(__dirname, '..', dir)
}

用到的插件

babel-runtime对es语法进行转义,fastclick解决移动端点击300ms延迟的问题,babel-polyfill(补丁)对es6的api比如promise这种进行转义.babel-polyfill一定要在main.js里引入.fastclick也要引入,fastclick.attach(document.body)是fastclick的推荐用法,解决300ms延迟的问题.

import 'babel-polyfill'
import Vue from 'vue'
import App from './App'
import router from './router'
import fastclick from 'fastclick'

import 'common/stylus/index.styl'

/* eslint-disable no-unused-vars */
// import vConsole from 'vconsole'

fastclick.attach(document.body)

驼峰写法

import MHeader from 'components/m-header/m-header'

引入组件这样写

<m-header></m-header>

用组件时这样写

移动端meta

    <meta name="viewport"
          content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值