Vue项目实战---知识点1.0

253 阅读4分钟

配置

知识点

components:{App}

  • 这个写法是ES6的写法,相当于{App:App},由于键值对名称一样,只写一个就可以。

router 路由

  • 路由就是根据网址的不同,返回不同的内容给用户
<!-- css样式初始化 -->
/* http://meyerweb.com/eric/tools/css/reset/ 
   v2.0 | 20110126
   License: none (public domain)
*/

html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed, 
figure, figcaption, footer, header, hgroup, 
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure, 
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}
<!-- 解决1像素边框问题:border.css -->

@charset "utf-8";

.border,

.border-top,

.border-right,

.border-bottom,

.border-left,

.border-topbottom,

.border-rightleft,

.border-topleft,

.border-rightbottom,

.border-topright,

.border-bottomleft {

    position: relative;

}

.border::before,

.border-top::before,

.border-right::before,

.border-bottom::before,

.border-left::before,

.border-topbottom::before,

.border-topbottom::after,

.border-rightleft::before,

.border-rightleft::after,

.border-topleft::before,

.border-topleft::after,

.border-rightbottom::before,

.border-rightbottom::after,

.border-topright::before,

.border-topright::after,

.border-bottomleft::before,

.border-bottomleft::after {

    content: "\0020";

    overflow: hidden;

    position: absolute;

}

/* border

 * 因,边框是由伪元素区域遮盖在父级

 * 故,子级若有交互,需要对子级设置

 * 定位 及 z轴

 */

.border::before {

    box-sizing: border-box;

    top: 0;

    left: 0;

    height: 100%;

    width: 100%;

    border: 1px solid #eaeaea;

    transform-origin: 0 0;

}

.border-top::before,

.border-bottom::before,

.border-topbottom::before,

.border-topbottom::after,

.border-topleft::before,

.border-rightbottom::after,

.border-topright::before,

.border-bottomleft::before {

    left: 0;

    width: 100%;

    height: 1px;

}

.border-right::before,

.border-left::before,

.border-rightleft::before,

.border-rightleft::after,

.border-topleft::after,

.border-rightbottom::before,

.border-topright::after,

.border-bottomleft::after {

    top: 0;

    width: 1px;

    height: 100%;

}

.border-top::before,

.border-topbottom::before,

.border-topleft::before,

.border-topright::before {

    border-top: 1px solid #eaeaea;

    transform-origin: 0 0;

}

.border-right::before,

.border-rightbottom::before,

.border-rightleft::before,

.border-topright::after {

    border-right: 1px solid #eaeaea;

    transform-origin: 100% 0;

}

.border-bottom::before,

.border-topbottom::after,

.border-rightbottom::after,

.border-bottomleft::before {

    border-bottom: 1px solid #eaeaea;

    transform-origin: 0 100%;

}

.border-left::before,

.border-topleft::after,

.border-rightleft::after,

.border-bottomleft::after {

    border-left: 1px solid #eaeaea;

    transform-origin: 0 0;

}

.border-top::before,

.border-topbottom::before,

.border-topleft::before,

.border-topright::before {

    top: 0;

}

.border-right::before,

.border-rightleft::after,

.border-rightbottom::before,

.border-topright::after {

    right: 0;

}

.border-bottom::before,

.border-topbottom::after,

.border-rightbottom::after,

.border-bottomleft::after {

    bottom: 0;

}

.border-left::before,

.border-rightleft::before,

.border-topleft::after,

.border-bottomleft::before {

    left: 0;

}

@media (max--moz-device-pixel-ratio: 1.49), (-webkit-max-device-pixel-ratio: 1.49), (max-device-pixel-ratio: 1.49), (max-resolution: 143dpi), (max-resolution: 1.49dppx) {

    /* 默认值,无需重置 */

}

@media (min--moz-device-pixel-ratio: 1.5) and (max--moz-device-pixel-ratio: 2.49), (-webkit-min-device-pixel-ratio: 1.5) and (-webkit-max-device-pixel-ratio: 2.49), (min-device-pixel-ratio: 1.5) and (max-device-pixel-ratio: 2.49), (min-resolution: 144dpi) and (max-resolution: 239dpi), (min-resolution: 1.5dppx) and (max-resolution: 2.49dppx) {

    .border::before {

        width: 200%;

        height: 200%;

        transform: scale(.5);

    }

    .border-top::before,

    .border-bottom::before,

    .border-topbottom::before,

    .border-topbottom::after,

    .border-topleft::before,

    .border-rightbottom::after,

    .border-topright::before,

    .border-bottomleft::before {

        transform: scaleY(.5);

    }

    .border-right::before,

    .border-left::before,

    .border-rightleft::before,

    .border-rightleft::after,

    .border-topleft::after,

    .border-rightbottom::before,

    .border-topright::after,

    .border-bottomleft::after {

        transform: scaleX(.5);

    }

}

@media (min--moz-device-pixel-ratio: 2.5), (-webkit-min-device-pixel-ratio: 2.5), (min-device-pixel-ratio: 2.5), (min-resolution: 240dpi), (min-resolution: 2.5dppx) {

    .border::before {

        width: 300%;

        height: 300%;

        transform: scale(.33333);

    }

    .border-top::before,

    .border-bottom::before,

    .border-topbottom::before,

    .border-topbottom::after,

    .border-topleft::before,

    .border-rightbottom::after,

    .border-topright::before,

    .border-bottomleft::before {

        transform: scaleY(.33333);

    }

    .border-right::before,

    .border-left::before,

    .border-rightleft::before,

    .border-rightleft::after,

    .border-topleft::after,

    .border-rightbottom::before,

    .border-topright::after,

    .border-bottomleft::after {

        transform: scaleX(.33333);

    }

}

scoped

  • 作用:当在一个组件中写样式的时候,不希望这个样式影响到其他的组件,就用scoped将其规定在这个范围里面。

轮播图

解决网速不好时,元素抖动问题

  • 当网速不好的时候,图片未加载出来,下面的元素由于上部分未撑开就会顶上去,导致一个明显的抖动
  • 这时候就要在轮播插件外面包一层div,设置height:0,padding-bottom:55%,解决问题

分页的小点

  • 插件中提供pagination,只需在数据中返回swiperOption:{pagination: '.swiper-pagination'}
  • 小点的颜色是插件中自带的,如果在该组件中的style设置了scoped,则无法更改组件外的样式,此时使用.wrapper >>> .swiper-pagination-bullet-active,代表这个样式穿透组件,可以去修改