1.小程序进入页面 图片渲染会拉伸闪下变形 因为从接口传递过来的图片本身图片大小不是一个固定比例全部渲染显示在页面时会出现此现象。 在image的mode图片剪裁缩放模式用mode=‘widthFix’ (宽度不变,高度自动变化保持原图宽高比不变) 在css中也加上height:auto 就可以
2.小程序的视图层目前使用 WebView 作为渲染载体,而逻辑层是由独立的 JavascriptCore 作为运行环境。在架构上,WebView 和 JavascriptCore 都是独立的模块,并不具备数据直接共享的通道。当前,视图层和逻辑层的数据传输,实际上通过两边提供的 evaluateJavascript 所实现。即用户传输的数据,需要将其转换为字符串形式传递,同时把转换后的数据内容拼接成一份 JS 脚本,再通过执行 JS 脚本的形式传递到两边独立环境。
面对大量数据接口传递过来我们最好不要循环里面一个一个setdata运行而是先新建一个tempdata把想要的数据都取出来再setdata来提高小程序页面渲染速度 或者用高阶函数map来返回temp这个数组对象
3.底部按钮会隐藏住上方的内容 内容view可以添加margin-bottom或者 按钮上面加一个透明view
4.微信小程序的本地缓存:wx.setStorage(wx.setStorageSync)、wx.getStorage(wx.getStorageSync)、wx.clearStorage(wx.clearStorageSync)。通过以上方法可以对本地数据进行设置、获取和清理。本地缓存最大为10MB。在用户更换设备时,用户的localStorage信息将会丢失,因此不建议将关键信息全部存在localStorage。
本地缓存分为同步存储和异步存储,同步方法和异步方法的区别是:
同步方法会堵塞当前任务,直到同步方法处理返回。 异步方法不会塞当前任务。 同步优点:方便调试,程序的执行顺序很清晰。
同步缺点:同步必须方法执行完之后再进一步执行后面的代码,同步方法执行很慢的时候整个UI会卡住。同步的方法运行不过去,后面的方法就走不了,所以代码的耗时就会非常长。
异步优点:不会卡主UI,代码会立刻走完,执行后面的程序。 异步缺点:不知道何时执行数据缓存,调试不便。 一般在微信小程序中,一般多用同步缓存来存储数据,在某些特定情况下才需要使用异步存储的方式。 以Sync(同步,同时)结尾的都是都是同步缓存,二者的区别是,异步不会阻塞当前任务,同步缓存直到同步方法处理完才能继续往下执行。
5.角向上的三角形
.kailong{
width:0;
height:0;
border-right:50px solid transparent;
border-left:50px solid transparent;
border-bottom:50px solid red;
}
https://www.cnblogs.com/guizimo/p/13884046.html#/cnblog/works/article/13884046
1.vue面试题
1、什么是mvvm
mvvm是model-view-modelview的缩写,脱胎于mvc模式的设计模式
model代表数据层 负责存放业务相关数据
view是视图层,负责在页面上展示数据
viewmodel是同步view和model之间的关联,实现同步关联的核心是dom listeners(监听view中的dom数据变化)和data bindings(监听model数据变化)两个工具
2.组件通讯
父传子:props
子传父:1.利用on和emit即:子组件利用一个事件来触发$emit来传递出去一个事件及参数,然后再父组件中绑定此事件,然后处理这个事件获取传递的参数
2.子组件改变父组件传递的props,但是不推荐使用因为vue是规定props是单向绑定
非父子:类似于传递事件
3.vue的生命周期
beforeCreate
created
4.vue中computed和watch有什么区别
computed:支持缓存,只有依赖数据发生变化时才会重新进行计算函数
计算属性内不支持异步操作 计算属性的函数都有一个get和set get默认具有,set手动添加
计算属性是自动监听依赖值得变化从而动态返回内容
watch:侦听属性
1.不支持缓存,只要数据发生变化就会执行侦听函数
2.侦听属性内支持异步操作
3.侦听属性的值可以是对象 监听是一个过程,在监听的值变化时可以触发一个回调做一些其他事情
vue中:
$nextTick是什么:
vue实现响应式并不是在数据变化之后立即更新dom而是使用$vm.$nextTick在下次dom更新循环结束之后立即执行延迟回调。在修改数据之后使用就可以在回调中得到更新后的dom
v-for中key的作用是什么
key是vue使用v-for渲染列表时的节点标识。使用了key之后当列表项发送变化时vue会基于key的变化而创新排列元素的顺序并且移除key不存在的元素,提升运行效率
vue的双向数据绑定原理
数据劫持和订阅发布模式实现
通过object.defineProperty()方法来为组件中的data每个属性添加get和set方法,在数据变动时触发set里面相应的监听回调函数,将变动信息发布给订阅者。
this.$set可以动态更新对象或数组的值因为你如果直接设置这两类数据的值页面时不会实时更新的
常用事件修饰符:
.stop
.prevent
.self
.once
vue如何获得dom元素
ref设置属性之后通过this.$refs.属性值获取
v-on绑定多个事件
v-on="{input:onInput,focus:onFocus,blur:onBlur}">
v-cloak
react和vue的共同处: 1.使用了虚拟dom树,提供了响应话和组件化的视图组件,将注意力集中保持在核心库像其他路由或全局状态管理交给了别的库 不同处: vue使用的是web开发者更熟悉的模板与特性,react在于函数式编程的理念。最大区别在于对数据的反应式系统上,vue提供反应式的数据,当数据改动时界面会自动更新。而react需要调用setstate。也就是push-based与pull-based的区别 vue是响应式的
vue-router路由有哪些模式 1.hash模式 后面的hash值得变化,浏览器既不会向服务器发出请求,浏览器也不会刷新,每次hash的值得变化会触发haschange事件 2.history模式 利用了h5新增的方法,这两个方法应用于浏览器的历史记录栈,在当前已有的back forward go的基础上。。。。
vuex是专为vue设计的状态管理工具,采用集中式储存管理vue的所有组件的状态。state属性 getters属性 mutation属性 action属性
v-model可以看成value和input的语法糖。