1.请谈谈微信小程序主要目录和文件的作用?
2 请谈谈wxml与标准的html的异同?到其他
相同:都是用来描述页面的结构;
不同:
3.请谈谈WXSS和CSS的异同?
相同:都是用来描述页面的样子;
不同:
4.你是怎么封装微信小程序的数据请求的?
1.在根目录下创建api目录及index.js文件和request.js文件;
2.在request.js 封装基础的get, post 和 put,delete方法和一个请求公共的方法,创建函数设置请求体,带上token和异常处理等;
3.根据页面数据请求的需要, 导出增删改查4个方法
4.index.js-------------->是写请求接口的,引入4个方法,并根据不同接口使用不同函数
5.在具体的页面中导入;
5 小程序页面间有哪些传递数据的方法?
在app.js
中可以定义全局变量globalData
, 旧页面将要传递的数据赋值存放在里面,新页面调用全局变量获取传递数据值。
getApp()
拿到存储的信息// app.js
App({
// 全局变量
globalData: {
name: null
}
})
//pageA.js
···
getApp().globalData.name = "jake";
//pageB.js
···
this.setData({
userName: getApp().globalData.name
});
在使用wx.navigateTo
或者wx.redirectTo
的时候,可以将部分数据放在url里面,在新页面onLoad
的时候获取且初始化。
//pageA.js
// Navigate
wx.navigateTo({
url: '../pageB/pageB?name=jake&gender=male',
})
// Redirect
wx.redirectTo({
url: '../pageB/pageB?name=jake&gender=male',
})
// pageB.js
...
Page({
onLoad: function(option){
console.log(option.name + 'is' + option.gender);
this.setData({
option: option
});
}
})
使用小程序中的本地缓存Storage,旧页面将传递数据存入缓存中,新页面通过调用获取缓存的API得到数据。
注意:
//pageA.js
···
wx.setStorageSync('sessionId', "session");
//pageB.js
···
var sessionId = wx.getStorageSync('sessionId');
6.请谈谈小程序的双向绑定和vue的异同?
大体相同,但小程序直接this.data的属性是不可以同步到视图的,必须调用this.setData()方法!
7 请谈谈小程序的生命周期函数?
8 简述微信小程序原理?
9.小程序视图渲染结束回调?
使用setData(data, callback),在callback回调方法中添加后续操作代码
10.this.setData
赋值用的,会让页面重新渲染,如果直接用data里赋值,页面不会重新渲染,与vue的不同之处
11.方法传值
问题:点击方法怎么获得传的值?
可以data-参数名 = "传的值" wxml
e.currentTarget.dataset.属性值 js
接收值:options.属性值
12.小程序2点间距离
获取当前用的地理位置 wx.getlocal
用wx.getlocal拿到经纬度,再用后台返的经纬度,再在前端方法计算2点间距离
PC端
1.引入腾讯地图js文件
2.页面创建一个节点(div)
3.初始化新建地图实例的一个方法
搜索:通过调用腾讯地图的API实现
13.e:事件对象
14.json:小程序页面的配置
例如:页面标题,颜色什么的都可以在这里面设置
主要文件:
app.json 全局配置 tarBar
app.js 入口文件必须有的
15.小程序页面间有哪些传递数据的方法
var app = get App()
app:存储全局变量或者存在本地
缓存中:localStorage:用于微信小程序自己的方法
16.小程序跳转方式有几种?
17.wxss和css有哪些不一样
在css上做了一些补充和修改
例如:2个页面相同样式比较多就可以用引入 的方式
18.如何提高微信小程序的应用速度?
微信小程序之提高应用速度小技巧 - 程序员大本营https://www.pianshen.com/article/3958856342/
19.组件间通信
小程序中父子组件间的通信与事件 - 与f - 博客园https://www.cnblogs.com/fps2tao/p/11368357.html
20.前端分页--分页
22.组件传值
1.父组件引用子组件
父组件json文件中(局部的)
"usingComponets":{
"customerSelector":"/compnents/customerSelector/index"
}
子组件中json
{
"component": true
}
2.父组件中给组件传的值
3.子组件接收
// 无数据
Component({
properties: {
tableList: {
type: Array,
value: []
}
}
})
2:子组件传值给父组件
子组件在需要传值时,使用triggerEvent传给父组件一个事件( myevent ),并传递想要给父组件的值( sonParam )
在父组件中,子组件的引用处,通过这个myevent事件绑定一个方法( onMyEvent )
在父组件的js中,定义这个方法onMyEvent,在这个方法内就可以获取到子组件传递过来的值了
23.app.json 是对当前小程序的全局配置,讲述三个配置各个项的含义?
24.小程序的wxss和css有哪些不一样的地方?
新像素单位 rpx样式可直接使用import导入
1、尺寸单位 rpx
rpx 是响应式像素,可以根据屏幕宽度进行自适应。规定屏幕宽为 750rpx。如在 iPhone6 上,屏幕宽度为 375px,共有 750 个物理像素,则 750rpx = 375px = 750 物理像素
2、使用 @import 标识符来导入外联样式。@import 后跟需要导入的外联样式表的相对路径,用;表示语句结束
/** index.wxss **/
@import './base.wxss';
.container{
color: red;
}
25.小程序有哪些参数传值的方法?
1.给HTML元素添加data-属性来传递我们需要的值,然后通过e.currentTarget.dataset或onload的param参数获取。但data-名称不能有大写字母和不可以存放对象;
2.设置id 的方法标识来传值通过e.currentTarget.id获取设置的id的值,然后通过设置全局对象的方式来传递数值;
3.在navigator中添加参数传值(?传的值的名称=所传的值在onLoad(option)用option来接收并获取)
26.小程序简单介绍下三种事件对象的属性列表?
27.小程序关联微信公众号如何确定用户的唯一性?
使用wx.getUserInfo方法 withCredentials为true时,可获取encryptedData,里面有union_id.后端需要进行对称解密。
28.微信小程序如何实现下拉刷新?
用view代替scroll-view,设置onPullDownRefresh函数实现,在json文件中设为enablePullDownRefresh:true
29.bindtap和catchtap的区别?
30.rpx:小程序的尺寸单位,规定屏幕为750rpx,可适配不同分辨率的屏幕。
31.页面栈及路由跳转
路由是由一个栈维护的,这个页面栈的长度是有限的。小程序页面栈存放最多10个。
微信小程序——页面栈及路由跳转_五柳-CSDN博客_小程序中的redirect会不会进入路由栈
33.tabBar设置不显示
34.微信小程序登录流程
1.调用wx.login()获取临时登录凭证code,并回传到开发者服务器
35.授权
wx.getSetting
36.微信小程序与H5的区别?
1.浏览器的存储方式有哪些?
37.小程序的发布流程(开发流程)
38.简述小程序原理
小程序分为两个部分webview和appService,webview用来展现UI,appService用来处理业务逻辑、数据及接口调用,它们在两个进程中运行,通过系统层JSBridge实现通信,完成UI渲染、事件处理。
39.webview的页面怎么跳转到小程序导航的页面?
小程序导航的页面可以通过switchTab,但默认情况是不会重新加载数据的。若需加载新数据,则在success属性中加入以下代码即可:
success: function (e) {
var page = getCurrentPages().pop();
if (page == undefined || page == null) return;
page.onLoad();
}
//webview的页面,则通过
wx.miniProgram.switchTab({
url: '/pages/index/index'
})
如何自定义头部?
如何自定义底部?