插槽
插槽,其实就相当于占位符。它在组件中给你的HTML模板占了一个位置,让你来传入一些东西。插槽又分为 匿名插槽、具名插槽、作用域插槽。
匿名插槽:
我们也可以叫它单个插槽或者默认插槽。和具名插槽相对,它是不需要设置 name 属性的,它隐藏的name属性为default。
具名插槽:
就是slot 是带有name的,要用一个 template标签包裹
作用域插槽 :
就是用来传递数据的插槽
52.语义化标签: header nav main article section aside footer
语义化的优点有: 代码结构清晰,易于阅读,利于开发和维护 方便其他设备解析(如屏幕阅读器)根据语义渲染网页。 有利于搜索引擎优化(SEO),搜索引擎爬虫会根据不同的标签来赋予不同的权重
是什么?
定义: 设置数据,更改数据
作用: setData函数用于将数据从逻辑层发送到视图层(异步),同时改变对应的 的值(同步)
setData它是微信小程序提供的一个内置的接口,是用于改变逻辑层中 data下的数据的
视图层 view的数据挂载在逻辑层的 data下,发送到视图层中是异步的
改变 是同步,换句话说,若直接修改 而不调用 方法,是无法改变页面的状态的,还会造成数据不一致
setData两个重要的参数:
第一个参数Object data是必传的,数据类型是Object,所代表的含义是,这次要改变的数据
第二个参数Function callback回调函数是非必填的,它所代表的含义是,setData引起的界面更新渲染完毕后的回调函数
54.如何让元素垂直居中
单行文本: line-height = height
图片: vertical-align: middle;
absolute 定位: top: 50%;left: 50%;transform: translate(-50%, -50%);
flex: display:flex;margin:auto
55.Vue生命周期的作用是什么?
创建阶段:
beforecreate:实例已经初始化,但不能获取DOM节点。(没有data,没有el)
created:实例已经创建,仍然不能获取DOM节点。(有data,没有el)
载入阶段:
beforemount:模板编译完成,但还没挂载到界面上。(有data,有el)
mounted:编译好的模板已挂载到页面中(数据和DOM都已经渲染出来)。
更新阶段:
beforeupdate:数据发生变化立即调用,此时data中数据是最新的,但页面上数据仍然是旧的(检测到数据更新时,但DOM更新前执行)。
updated:更新结束后执行,此时data中的值和页面上的值都是最新的。
销毁阶段:
beforedestroy:当要销毁vue实例时,在销毁之前执行。
destroy:在销毁vue实例时执行。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
简述每个生命周期具体适合哪些场景?
beforecreate:可以加Loading事件。
create:初始化完成时的事件写在这里,异步请求也适宜在这里调用(请求不宜过多,避免白屏时间太长)。可以在这里结束loading事件,还做一些初始化,或实现函数的自执行。此时未挂载DOM,若在此阶段进行DOM操作一定要放在()的回调函数中。
mounted:此时完成挂载DOM和渲染,需要操作DOM的方法可以放在这里,也可在这发起后端请求,拿回数据,配合路由钩子做一些事情。
beforeupdate:可在更新前访问现有的DOM,如手动移出添加的事件监听器。
updated:组件DOM已完成更新,可执行依赖的DOM操作。注意:不要在此函数中操作数据(修改属性),会陷入死循环。
activated:在使用vue-router时有时需要使用<keep-alive></keep-alive>来缓存组件状态,这个时候created钩子就不会被重复调用了。如果我们的子组件需要在每次加载的时候进行某些操作,可以使用activated钩子触发。
deactivated:<keep-alive></keep-alive>组件被移除时使用。
beforedestroy:销毁前,可以做一些删除提示,如:您确定删除xx吗?
destroy:销毁后,这时组件已经没有了,无法操作里面的任何东西了。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9