基于Vue-CLI 2.9模板

npm install vue-cli -g

vue init webpack mall

.eslintrc.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
rules: {
// allow async-await
'generator-star-spacing': 'off',
// allow debugger during development
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'semi': ['error', 'always'],
// 把默认的eslintrc 代码风格 格式关闭
'indent': 'off',
// 用vue定义我们的代码风格 中间的2*baseIndent的值 代码空几格
'vue/script-indent': ['error', 2, {
'baseIndent': 1
}],
// 函数括号之前的空格 error
// anonymous 匿名函数总是要空格
// named 有名字的函数不要空格
// asyncArrow 异步的箭头函数要空格
'space-before-function-paren': ['error', {
'anonymous': 'always',
'named': 'never',
'asyncArrow': 'always'
}]

config/index.js

1
2
3
host: '0.0.0.0',//同一局域网手机可以访问,使用PC的ip
autoOpenBrowser: true,//打包自动打开游览器

npm i -s babel-polyfill fastclick

npm i -S node-sass sass-loader

1
2
3
4
//main.js
import 'babel-polyfill';
import fastclick from 'fastclick';//移动端300ms 延迟
fastclick.attach(document.body);

webpack配置

1
2
3
4
5
6
7
8
9
10
11
12
//build/webpack.base.conf.js
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'@': resolve('src'),
'api': resolve('src/api'),
'assets': resolve('src/assets'),
'base': resolve('src/base'),
'components': resolve('src/components'),
'pages': resolve('src/pages')
}
},

插槽的if判断

1
2
3
<div class="mine-navbar-left" v-if="$slots.left">
<slot name="left"></slot>
</div>

flexellipsis 冲突 在flex 内部添加ellipsis

1
2
3
4
5
 <h1 class="mine-navbar-title" v-if="title">
<span class="mine-navbar-text" v-text="title"></span>
</h1>
h1 flex-center
span ellipsis

npm i vue-awesome-swiper 基于swiper的vue插件

npm i -S jsonp jsonp插件

实现图片正方形

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<p class="recommend-pic">
<img class="recommend-img" :src="item.baseinfo.picUrlNew" />
</p>

&-pic {
width: 100%;
padding-top: 100%;
position: relative;
}
&-img {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
}

图片的懒加载

npm install --save vue-lazyload

标签属性v-lazy


为元素绑定属性有3种方式的写法

类名: v-bind:class=”focus”

类名数组:v-bind:class=”[‘focus’, ‘shine’]”

样式对象:v-bind:classs=”{‘focus’: true/false, ‘shine’: true/flase }”,这种方式会根据样式名作为键的值来决定是否采用,如果值为:false,则不采用该样式,否则应用该样式。