微信小程序开发:目录文件作用、wxml 与 html 异同、WXSS 与 CSS 异同及数据请求封装

2024-07-03
来源:网络整理

1.请说说微信小程序主要目录及文件的作用? 2.请说说wxml与标准html的异同? 3.请说说WXSS与CSS的异同?

它们用于描述页面的外观。

4.微信小程序的数据请求如何封装? 在根目录下建立util目录和api.js文件及.js文件。 在.js中封装基本的get、post、put请求方法,设置请求体、及异常处理等。 在api中引入.js中封装的请求方法。 根据页面数据请求的url,设置对应方法并导出。 在具体页面中导入或者将所有接口放在统一的js文件中并导出。 在app.js中建立封装请求数据的方法, 在子页面中调用封装的请求数据。 5.小程序页面间传递数据(值)的方法有哪些? 页面跳转或者重定向时,使用url传递带参数的数据。 使用组件模板传递参数。 使用缓存传递参数。 使用数据库传递参数。 在html元素上添加data-*属性来传递值,然后通过e..或者参数来获取(data-不能有大写字母,不能存储对象)。设置id的方法标识来传递值,通过e..id获取设置的id值,然后通过设置全局对象来传递数据。在6中添加参数值。请说说小程序与vue双向绑定的相同点与不同点?

基本一样,但是小程序之间的this.data属性不能同步到视图,必须调用this.()方法

7. 请讲一下小程序的生命周期函数 8. 简述微信小程序的原理

小程序本质是一个单页应用,所有的页面渲染和事件处理都在一个页面内进行,但可以通过微信客户端调用各种原生接口。其架构是数据驱动的架构模式,UI和数据分离,所有页面更新都需要通过改变数据来实现。技术上与现有的前端开发类似,使用WXML、WXSS三种技术进行开发。

该功能可分为两部分:

主要用于展示UI以及处理业务逻辑、数据和接口调用。它们在两个进程中进行,通过系统层进行通信,实现UI的绘制和事件处理。有两个进程分别处理业务逻辑、数据和接口调用。

两部分运行在两个进程中,通过系统层进行通信,实现UI的绘制,事件处理等。代码运行在微信App中,所以一些h5技术应用需要微信App提供相应的API支持。wxml微信本身是基于XML语法开发的,所以开发时只能使用微信现有的标签,不能使用HTML标签。wxss具备css的大部分功能,但并不是全部支持,也没有详细的文档(wxss的图片需要使用外部链接地址,没有body,需要引入样式)

9.请说一下原生开发小程序和wepy的比较?

个人认为,如果是新项目,没有老的h5项目需要迁移,可以考虑用小程序原生开发,好处是相比第三方框架坑少,如果有vue开发的旧h5项目或者有h5项目也需要小程序开发,wepy比较适合迁移或者开发,wepy最近几乎没有更新,所以推荐美团,如果团队前端实力强,自己做一个框架也是没问题的。

10.简述微信小程序相关的文件类型

wxml模板文件是框架设计的一组标签预测,结合基础组件、事件系统构建页面结构。wxss样式文件是一组用于描述WXML组件样式的样式语言。js脚本逻辑文件。逻辑处理网络请求json配置文件,小程序设置,如页面注册、页面标题等。

app.json是整个小程序的全局配置,包括:

app.js监控处理小程序生命周期函数,声明全局变量

app.wxss全局配置样式文件

11.有什么方法可以提高微信小程序的应用速度?12.分析微信小程序的优点和缺点?

优势:

缺点:

13.微信小程序和H5有什么区别? 14.微信小程序异步请求问题如何解决?

在回调函数中调用下一个组件的函数

*/app.js*/ ​ success:function(info){ ​  that.apirtnCallback(info) ​ } */index.js*/ ​ onLoad:function(){ ​ app.apirtnCallback = res =>{ ​ console.log(res) ​ } ​ } 复制代码

15.小程序绑定微信公众号时如何判断用户的唯一性?

当wx方法为true时才可以获取,后端需要进行对称解密。

16.使用直接加载需要注意什么? 17.调用小程序后台接口时会遇到哪些问题? 18.微信小程序如何实现下拉刷新?

使用view代替-view,设置函数实现

19.如何从页面跳转回小程序?

wx.miniProgram.navigateTo({    url:'pages/login/login'+'$params' }) //跳转到小程序导航页面 wx.miniProgram.switchTab({    url:'/pages/index/index' }) 复制代码

20.和有什么区别?

Bind 事件绑定不会阻止冒泡事件向上冒泡。Bind 事件可以阻止冒泡事件向上冒泡。

21.简述一下wx.()、wx.()、wx.()、wx.()、wx.()的区别? 22.小程序的写法和vue的写法区别? 遍历的时候:小程序是wx:for="list",而vue是v-for="item in list"

调用数据模型(赋值)时:

小程序:this.data.item //调用,this.({item:1}) //赋值

Vue:this.item //调用,this.item=1 //赋值

23.小程序和原生APP哪个好?

各有优缺点

小程序的优势:

原生应用的优势:

24.小程序发布流程(开发流程) 注册微信小程序账号 获取微信小程序下载 微信小程序开发者工具 创建demo项目 前往微信公众号 配置域名 手机浏览 上传代码 提交审核 小程序发布 25.如何从小程序里的页面跳转回小程序?

// 首先,需要在你的html页面中引用一个js文件 //然后为你的按钮标签注册一个点击事件 $(".kaiqi").click(function(){        wx.miniProgram.redirectTo({url: '/pages/indexTwo/indexTwo'}) }); // 这里的redirectTo跟小程序的wx.redirectTo()跳转页面是一样的,会关闭当前跳转到页面,换成navigateTo,跳转页面就不会关闭当前页面 复制代码

26.小程序授权登录流程

授权,微信登录获取code,微信登录,获取IV,传到服务器后端,如果还没注册的话,需要注册一下。

27.如何实现小程序支付?

//1.小程序注册,要以公司的身份去注册一个小程序,才有微信支付权限 //2.绑定商户号 //3.在小程序填写合法域 //4.调用wx.login()获取appid //5.调用 wx.requestPayment({    'timeStamp': '',//时间戳从1970年1月1日00:00:00至今的秒数,即当前的时间    'nonceStr': '',//随机字符串,长度为32个字符以下。    'package': '',//统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=*    'signType': 'MD5',//签名类型,默认为MD5,支持HMAC-SHA256和MD5。注意此处需与统一下单的签名类型一致    'paySign': '',//签名,具体签名方案参见微信公众号支付帮助文档;    'success':function(res){},//成功回调    'fail':function(res){},//失败    'complete':function(res){}//接口调用结束的回调函数(调用成功、失败都会执行) }) 复制代码

28.小程序还有什么功能?

客服功能、录音、视频、音频、地图、定位、拍照、动画、

29. 小程序常见问题:30. 什么是uni-app

uni-app 是一个使用 Vue.js(new)开发所有前端应用的框架,开发者编写一套代码,即可发布到 iOS、Web(响应式)、各类小程序(微信/支付宝/百度/今日头条/飞书/QQ/快手/钉钉/淘宝)、快应用等多个平台。

二、Git 1、常用git命令

1.1、git init

初始化一个Git仓库,会创建一个.git文件夹,后续的操作记录都会保存在这个文件夹中,相当于Git的数据库。

1.2、git添加远程仓库地址

关联本地仓库和远程仓库就是关联远程仓库的名字,这个是Git的默认名字,关联之后我们就可以将本地的提交历史推送到远程仓库,完成和别人的协同工作。

1.3、git -v

查看关联的远程存储库列表,并返回远程存储库名称和URL:

$ git remote -v origin https://github.com/schacon/ticgit (fetch) ​ 复制代码

1.4.git

显示当前工作目录和暂存区的状态。例如,如果创建了一个文件,git 会显示目录中未跟踪的文件。如果添加了该文件,则会在 to be 部分看到它,这意味着它已经添加到缓存中,正在等待提交。最后,当我们发现没有修改或未提交的文件时。

1.5,git add [文件],git add 。

用于将已修改或未跟踪的文件添加到暂存区

1.6. git -m “提交日志”

将暂存区的文件提交到本地仓库

1.7,git日志--

小程序开发的几大好处_程序开发用什么程序_程序开发什么意思

查看提交的日志信息

1.8、git diff

查看工作区和暂存区文件的差异

1.9、git推送

将本地分支推送到远程仓库,第一次推送到远程仓库会在服务器上创建对应的分支,第一次推送完成后,以后就可以直接使用git push了。

1.10、git pull

将远程仓库最新的内容合并到本地仓库

1.11,git

将其他分支的提交合并到当前分支

1.12,git——

合并过程中可能会出现冲突,如果冲突后想放弃合并,可以使用此命令

1.13. Git 分支名称

创建新分支

1.14. Git 分支名称

切换到另一个分支

1.15、git -b 新分支名

它相当于上面两个命令的合并功能,即创建一个新的分支,然后切换到新的分支。

1.16,git,git -r,git -a

它们是查看本地分支、查看远程分支、查看所有分支

1.17、git -d 分支名称

删除分支,如果分支还没有合并,会提示错误,如果要强制删除,使用git -D 分支名

1.18,git -f

删除本地存储库中未跟踪的文件。如果要删除目录,请使用 -d

1.19,git

重置暂存区的文件与上次提交()一致,但工作区的更改不会重置。需要使用 git 命令重置工作区的更改。或者使用更危险的 git --hard HEAD 命令,该命令会将工作区和暂存区都重置为上一个版本,包括信息。

1.20,git rm 文件,git rm --

如果只是在工作目录手动删除文件,那么就需要将变更添加到暂存区,然后再提交到本地仓库,才能完成变更版本的记录。git rm file 可以帮助我们在删除变更的同时,将变更添加到暂存区,省去了一个步骤。

但有时我们想保留该文件以便后续使用,但又想将删除的修改添加到暂存区,这时候我们就可以使用git rm --文件名命令来实现这个效果。

1.21. git 和 git pop

如果我们开发进行到一半,需要重新创建一个新的分支来解决线上的一个问题,但此时又不想将当前分支的修改提交到对应的分支中,我们可以使用 git 将修改(包括工作区和暂存区)保存到堆栈中。等到新分支处理完毕后,再切换到上一个分支,然后使用 git pop 即可恢复缓存的堆栈内容。

2. git 时发生冲突。能解释一下冲突是怎么发生的吗?如何解决的?

冲突如何发生

在开发过程中,我们都有自己的特性分支,所以冲突的情况并不多,但也遇到过,比如我和别人同时在某个类的方法中修改了同一个文件,他提交之后我才提交,就会报冲突的错误。

如何解决冲突

1.当发生冲突时,IDE通常会对比本地文件和远程分支文件,然后手动将远程分支文件的内容修改到本地文件中,然后提交冲突的文件,确保和远程分支文件一致,这样就消除了冲突,再提交修改的部分。特别需要注意的是,修改本地冲突的文件让其和远程仓库文件一致之后,需要进行提交,消除冲突,否则无法提交。必要时可以和同事沟通,消除冲突。

2.如果发生冲突,也可以使用命令。使用git命令将工作区中的修改提交到堆栈区,以保存工作区中的修改;使用git pull命令拉取远程分支上的代码并合并到本地分支,以消除冲突;使用git pop命令将堆栈区中保存的修改部分合并到最新的工作区中;

3.如果提交有误,如何取消?

如果要撤消提交到索引区的文件,可以这样操作;如果要撤消提交到本地仓库的文件,可以使用-^n,这样可以将当前分支的版本库恢复到上次提交的状态,索引区和工作区不会发生改变。

使用–^n将当前分支的版本库和索引区恢复到上次提交的状态,工作区保持不变。

使用 –^n 将当前分支的存储库、索引区域和工作区恢复到上次提交的状态。

4.git 和 svn 有什么区别

分布式与集中式的区别:

各个节点地位平等,拥有各自的版本库,在没有网络的情况下,工作区内代码的变更可以提交到本地仓库,此时本地仓库相当于一个集中式的远程仓库,常规的提交、撤销等操作都可以基于本地仓库进行,让日常开发更加便捷。

5.git、git和git pull的区别

git pull相当于git和git一样,就是把远程仓库的代码更新到本地仓库,然后将内容合并到当前分支中。git:将内容合并到当前分支中git相当于从远程获取最新版本到本地,不会自动方便记忆:git pull = git + git

6.Git 中的 和 有什么区别?

git 和 git 命令都用于从分支获取内容并将其合并到当前分支中。

以合并 /todo 分支到主分支为例,我们来看看分别使用 和 时有什么区别。

使用

会自动创建一个新的,如果合并的时候有冲突,只需要修改一下再重试即可。

使用

先前的历史记录将被合并。

建议

(2)2022 年我的 10,000 字采访摘要(CSS)

(3)2022 年我的采访 10,000 字摘要(HTML 版本)

(4)2022 年我的 10,000 字采访总结(JS 第 1 部分)

(5)2022 年我的 10,000 字采访总结(JS 第二部分)

(6)我的2022年面试一万字总结(代码部分)

(7)2022 年我的 10,000 字采访总结(在 Vue 上)

(8)2022 年我的 10,000 字采访总结(Vue 下)

(9)2022年我的面试一万字总结(Vue3+TS)

(10)我的2022年面试一万字总结(Node、性能优化)

分享