欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 前端技术 > vue >内容正文

vue

vue中headers是什么-凯发k8官方网

发布时间:2024/10/8 vue 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 vue中headers是什么_【vue】饿了么项目-header组件开发 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

1.数据传递的理解

在app.vue中用到了header组件,首先注册组件

components: {'v-header': header

}

然后才能引用

:seller="seller"的意思是将seller对象传递给v-header中的seller,而v-header中从哪里获得seller呢?

通过props从父组件中获得,且要指定数据类型

export default{

props: {

seller: {

type: object

}

}

}

所以在父组件中需要将seller作为数据导出

export default{

data() {return{

seller: {},

}

}

}

header组件引用star组件也是一样的道理,再巩固下吧

header.vue中

import star from'../star/star.vue'; //红色的star对应的就是star.vue中exportdefault的object

components: {

star

}

引用:

star.vue中就可以取到48和seller.score数据了,并用computed将这两个数据进行相应计算

export default{

props: {

size: {

type: number

},

score: {

type: number

}

},

computed: {

startype() {return 'star-' this.size;

},

itemclasses() {

let result=[];

let score= math.floor(this.score * 2) / 2;

let hasdecimal= score % 1 !== 0;

let integer=math.floor(score);for (let i = 0; i < integer; i ) {

result.push(cls_on);

}if(hasdecimal) {

result.push(cls_half);

}while (result.length

result.push(cls_off);

}returnresult;

}

}

};

即可对应显示相应的星星:

star组件(评星的星星,多处使用,写成组件)

:class="itemclass"//给每个itemclass设置class(itemclass是通过itemclasses遍历来的)

而itemclasses()也放到conputed中计算

2.@import "star.styl";

3.vue中通过操作变量,不用写dom部分的代码,省去了很多工作

data() {return{

detailshow:false};

},

methods: {

showdetail() {this.detailshow = true;//控制变量即可,自动更新

},

hidedetail() {this.detailshow = false;

}

},

4.经典css sticky footer布局

4.1固定高度的凯发k8官方网的解决方案

为容器推算出其高度,我们可以使用一个容器将和元素包裹起来,这样我们只需要计算页脚的高度

.detail-wrapper

width 100%

min-height 100% 定义基于包含它的块级对象的百分比最小高度。

.detail-main

margin-top 64px

padding-bottom 64px

.detail-close

position relative

width 32px

height 32px

margin -64px auto 0 auto

clear both

font-size 32px

//内容的包装层//关键padding-bottom 64px优惠信息
  • {{seller.supports[index].description}}

商家公告

{{seller.bulletin}}

//底层

4.2flexbox凯发k8官方网的解决方案,flex是flexible box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。

flexbox是最完美的方案。我们只需要几行css代码就可以完美的实现,而且不需要一些奇怪的计算或添加额外的html元素。首先,我们需要在

元素上设置display:flex。

flex属性是flex-grow、flex-shrink和flex-basis三个属性缩写。任何元素设置了flex大于0,元素就会灵活的控制自己的尺寸,来适配容器的剩余空间。例如,如果设置了flex:2,设置了flex:1,那么页脚的高度是主内容高度的二分之一,同样的,如果值设置的是4和2而不是2和1,他们效果是一样的,因为他们的倍数比例值一样

body{display:flex;flex-flow:column;min-height:100vh;

}main{flex:1; }

5.clearfix复习

在一个有float 属性元素的外层增加一个拥有clearfix属性的div包裹,可以保证外部div的height,即清除"浮动元素脱离了文档流,包围图片和文本的 div 不占据空间"的问题。在标准浏览器下,.clearfix:after这个伪类会在应用到.clearfix的元素后面插入一个clear: both的块级元素,从而达到清除浮动的作用。

.clearfix

display inline-block&:after

display block

content"."height0line-height 0clear both

visibility hidden

6.clear both

clear : none | left|right| both

none :  允许两边都可以有浮动对象both :  不允许有浮动对象left :  不允许左边有浮动对象right :  不允许右边有浮动对象

用于使用了float css样式后产生浮动,最常用是使用clear:both清除浮动。比如一个大对象内有2个小对象使用了css float样式为了避免产生浮动,大对象背景或边框不能正确显示,这个时候我们就需要clear:both清除浮动。

7.如何得到itemclasses()

itemclasses() {

let result=[];//它是一个数组

let score= math.floor(this.score * 2) / 2; //获取score并转换,如4.5会转换成4.5,而4.3转换成4

let hasdecimal= score % 1 !== 0; //是否有小数

let integer=math.floor(score);for (let i = 0; i < integer; i ) {

result.push(cls_on); //满星

}if(hasdecimal) {

result.push(cls_half); //半星

}while (result.length

result.push(cls_off);

}returnresult;

}

8.自适应线条-采用flex布局

优惠信息

.title

width 80%

display flex //vue会依赖postcss自动考虑兼容性问题

margin 28px auto 0 auto

.line

flex: 1

position relative

top -6px

border-bottom 1px solid rgba(255, 255, 255, 0.2)

.text

padding 0px 12px

font-size 16px

font-weight 700px

9.遍历

v-if是“真正的”条件渲染,根据其后表达式的bool值进行判断是否渲染该元素,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

v-if 也是惰性的:如果在初始渲染时条件为假,则什么也不做——直到条件第一次变为真时,才会开始渲染条件块。

相比之下, v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 css 进行切换。

v-if指令只渲染他身后表达式为true的元素;在这里引入v-show指令,因为二者的区别是v-show指令会渲染他身后表达式为false的元素,这样的元素上会添加css代码:style="display:none"; 将上面v-if的实例代码改为v-show

  • //v-if条件渲染,传进来true或false
  • //icon是本身的class

    {{seller.supports[index].description}}

10.vue中设置过渡、动画,可以使用现成的transition组件

通常采用给过渡命名的方式(这里没有选用v-方式),这样如果我想应用到另一个动画时就不会有冲突。这是不难做到的,正如你所看到的,我们只是简单地给过渡组件添加了一个name属性:name="fade"。

...

既然有了钩子,我们就可以利用它们创建过渡,我们可以在 css 中使用。

其中enter/leave定义动画开始第一帧的位置,enter-active/leave-active定义动画运行阶段——你需要把动画属性放在这里,enter-to/leave-to指定元素在最后一帧上的位置。

&.fade-enter-active

animation: bounce-in .5s;

&.fade-leave-active

animation: bounce-out .5s;

@keyframes bounce-in{0% {

transform:scale(0);

}50%{transform:scale(1.5);

}100%{transform:scale(1);

}}

@keyframes bounce-out{0% {

transform:scale(1);

}50%{transform:scale(1.5);

}100%{transform:scale(0);

}}

动画和过渡的区别并不仅仅是设置最终的状态或者在开始和结束之间插入状态,我们将使用 css 中的@keyframes创建有趣可爱的效果。

@keyframes创建动画的原理是,将一套 css 样式逐渐变化为另一套样式。在动画过程中,您能够多次改变这套 css 样式。

11.针对iphone的模糊-webkit-backdrop-filter blur(10px)

12.文本一行显示,显示不完出现省略号,隐藏滚动条

{{seller.bulletin}}

总结

以上是凯发k8官方网为你收集整理的vue中headers是什么_【vue】饿了么项目-header组件开发的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图