WXML 与 HTML 的区别及 WXSS 和 CSS 的异同

2024-11-11
来源:网络整理

WXML只能在微信小程序开发者工具中预览,而HTML可以在浏览器中预览

组件封装不同。 WXML 重新封装了组件。

小程序运行在JS Core中。没有DOM树和对象,小程序中不能使用对象和对象。

3.请谈谈WXSS和CSS的异同?

它们都是用来描述页面的外观的;

WXSS具有CSS的大部分功能,同时也做了一些扩展和修改;

WXSS增加了新的尺寸单位,WXSS底层支持新的尺寸单位rpx;

WXSS仅支持部分CSS选择器;

WXSS提供全局样式和局部样式

4、微信小程序的数据请求如何封装?

在根目录下创建一个目录并创建api.js文件和.js文件;

在.js中,封装基本的get、post和put等请求方法,设置请求体、和异常处理等;

在api中引入.js封装的请求方法,根据页面数据请求的url设置对应的方法并导出;

导入到特定页面;

5、小程序页面之间传输数据的方式有哪些?

使用全局变量实现数据传输

页面跳转或重定向时,使用url带参数传递数据

使用组件模板传递参数

使用缓存传递参数

使用数据库传递数据

6.请谈谈小程序和vue的双向绑定有何异同?

大致是一样的,但是小程序直接的this.data属性无法同步到视图,必须调用this.()方法!

7.请谈谈小程序的生命周期功能?

() 在页面加载时触发,只会调用一次,获取当前页面路径中的参数。

() 页面显示/切换到前台时触发,一般用于发送数据请求;

() 在页面初始渲染完成时触发。它只会被调用一次,这意味着页面可以与视图层交互。

() 页面隐藏/切换到后台时触发,比如底部标签切换到其他页面或者小程序切换到后台等。

() 当页面卸载时触发,比如或者去其他页面时触发。

8.简述微信小程序的原理?

小程序本质上是一个单页面应用程序。所有页面渲染和事件处理都在一个页面内完成,但可以通过微信客户端调用各种原生接口;

它的架构是数据驱动的架构模型,UI和数据是分离的。所有的页面更新都需要通过数据的改变来实现;

从技术上来说,和现有的前端开发类似,采用三种技术:WXML、WXSS进行开发;

该功能可分为两部分: 和;

用于显示UI并处理业务逻辑、数据和接口调用;

这两部分运行在两个进程中,通过系统层进行通信,实现UI渲染、事件处理等。

9、请谈谈原生开发的小程序、wepy、和?

个人认为,如果是新项目,没有老h5项目的迁移,那么可以考虑使用小程序进行原生开发。优点是相比第三方框架,陷阱较少。

而如果有Vue开发的老h5项目或者有同样需要小程序开发的h5项目,则更适合wepy或者进行迁移或开发。最近wepy几乎没有更新,所以推荐美团。

而且如果团队前端实力强的话,自己搭建一个框架也是没问题的。

----------------------------------------------------------分隔线--- -----------------------------------------------------------

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

1.根据文件后缀

①.wxml模板文件是一套用于框架设计的标签语言。结合基本组件和事件系统,就可以构建页面的结构。

②.wxss样式文件是一组用于描述WXML组件样式的样式语言。

③.js脚本逻辑文件,逻辑处理网络请求

④.json配置文件,小程序设置,如页面注册、页面标题等

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

:[所有页面路径]

网络设置(网络超时)

界面表现(页面注册)

:{背景颜色、导航样式、默认标题}

底部标签等

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

4.app.wxss全局配置样式文件

2、微信小程序的数据请求如何封装?

1.将所有接口放在统一的js文件中并导出

2.在app.js中创建一个方法来封装请求数据

3.在子页面中调用封装好的请求数据

或者

1、在根目录下创建一个目录并创建api.js文件和.js文件;

2、在.js中封装基本的get\pos​​t\put\等请求方法,设置请求体、和异常处理等;

3、在api.js中引入.js封装的请求方法,根据页面数据请求的url设置对应的方法并导出;

4、特定页面导入;

3、微信小程序有哪些传值(数据传输)方式?

1、在html元素中添加data-*属性来传递值,然后通过e..或参数获取。

小程序开发工程师面试题_微信小程序面试题目_微信小程序开发面试题

注意:data-name不能有大写字母,也不能存储对象。

2、设置id的方法标识符来传递值,通过e..id获取设置的id的值,然后通过设置全局对象来传递值。

3.在中添加参数值

或者

1.使用全局变量实现数据传递

2、页面跳转或重定向时,使用url带参数传递数据。

3.使用组件模板传递参数

4.使用缓存传递参数

5.使用数据库传递参数

4、有哪些方法可以提高微信小程序的应用速度?

1.提高页面加载速度

2、用户行为预测

3. 减少默认数据的大小

4. 组件解决方案

5、微信小程序的原理是什么?

微信小程序的开发使用了三种技术:wxml和wxss。与现有前端开发的区别在于:

① 代码运行在微信APP中,因此一些h5技术应用需要微信APP提供相应的API支持;

②wxml微信本身是基于xml语法开发的,所以开发时只能使用微信提供的现有标签,不能使用html标签;

③wxss具有css的大部分功能,但在没有详细文档的情况下并不是全部都支持(wxss的图片引入需要使用外部链接地址,没有body,直接导入样式即可)。

微信的架构是数据驱动的架构模型。它的UI和数据是分离的。所有页面更新都需要更改数据。

小程序功能分为UI和APP,主要用于展示UI以及处理业务逻辑、数据和接口调用。它们分两个进程进行,通过系统层进行通信,实现UI渲染和事件处理。

6、分析微信小程序的优缺点?

优点:

① 上手容易,基础组件库比较齐全,基本不需要考虑兼容性问题;

②开发文档比较齐全,开发社区比较活跃,支持插件开发;

③用户体验好:无需下载,搜索扫描即可打开,打开速度快,在上可添加到桌面,与原生APP类似;

④开发成本比APP低;

⑤为用户提供良好的安全保障(小程序发布严格审核流程)

缺点:

① 限制较多,页面大小不能超过1M,不能打开5级以上页面;

② 样式单一,有些组件已经成型,样式无法修改,如:幻灯片、导航

③推广范围窄,无法分享到朋友圈。只能通过分享给好友、附近的小程序来推广。

④ 依赖微信,无法开发后台管理功能

⑤api接口必须请求公网地址,后端调试比较麻烦

⑥真机测试,安卓和苹果个别功能表现差异较大。例如,的定位功能加载速度非常慢。

7、微信小程序和H5有什么区别?

①运行环境不同(小程序运行在微信上,h5运行在浏览器上);

②开发成本不同(h5需要兼容不同浏览器);

③ 获取不同的系统权限(系统级权限可与小程序无缝对接);

④应用在生产环境中的运行流畅度(h5需要不断优化项目,提高用户体验);

8.如何解决微信小程序的异步请求问题?

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

应用程序.js

success:function(info){ that.apirtnCallback(info) }

.js

onLoad:function(){ app.apirtnCallback = res =>{ console.log(res) } }

8、小程序关联微信公众号时如何判断用户的唯一性?

当 wx.方法正确,可以得到。后端需要进行对称解密。

9、使用直接加载时需要注意什么?

① 必须使用管理员在小程序后台添加企业域名;

②h5页面跳转到小程序的步骤必须为1.3.1或以上;

③微信分享只能是小程序的主名称。如需自定义分享内容,小程序版本需为1.7.1及以上;

④H5支付不能来自微信公众号,必须来自小程序,用户的支付也必须来自用户和小程序。

10、小程序调用后端接口时会遇到哪些问题?

① 数据大小限制。超出范围会直接导致整个小程序崩溃,除非重新启动小程序;

②小程序无法直接渲染文章内容等HTML文本。显示需要使用插件。

注意:插件渲染会导致页面加载变慢。建议在后台过滤文章内容的HTML,直接在后台处理p标签和div标签与view标签的批量替换。然后让插件做其他标签。

11、微信小程序如何实现下拉刷新?

使用view而不是-view来设置函数实现

12、如何从 中的页面跳转回小程序?

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

13. 和 有什么区别?

①事件绑定不会阻止事件冒泡

②事件绑定可以防止事件冒泡

微信小程序开发面试题_微信小程序面试题目_小程序开发工程师面试题

14. 简要说明

wx.()、wx.()、wx.()、wx.()、wx.() 之间有什么区别?

①在wxml页面中:

wx.() 跳转到新页面

wx.() 在当前页面打开

wx.()切换到主页Tab

②js页面中:分为页面和应用内页面;

③如果上述跳转遇到跳转失败或者无效的问题,请访问:wx./wx.

15、小程序的生命周期功能是什么?

1.()在页面加载时触发。只会调用一次来获取当前页面路径中的参数。

2.()页面显示/切换到前台时触发,一般用于发送数据请求

3.()在页面初始渲染完成时触发。它只会被调用一次,这意味着页面可以与视图层交互。

4. () 页面隐藏/切换到后台时触发,比如底部标签切换到其他页面或者小程序切换到后台等。

5. () 页面卸载时触发,比如或者转到其他页面时。

16、小程序和Vue编写有什么区别?

①遍历时:小程序wx:for = "",而vue是v-for = "item in "

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

小程序:

this.data.item //调用 this.setData({item:1}) //赋值

视图:

this.item //调用 this.item =1 //赋值

17.微信小程序开发常见问题

1.rpx:小程序的大小单位,屏幕指定为,可以适配不同分辨率的屏幕。

2、无法通过wxss获取本地资源

-:可以使用网络图片,或者,或者使用标签

3.wx.无法打开页面

一个应用程序只能同时打开5个页面。请避免多级交互,或者使用wx.

4. 设置不显示

① 数量少于2件或多于5件的不显示;

②写入错误导致不显示;

③无书写栏(程序启动后显示的第一页)

17、我们先来一个经典的面试题:用户第一次点击小程序后会发生什么?

一般来说,会有以下三个过程:

1、白屏三点:下载代码包阶段

2、白屏无三点(通常很快):业务代码注入和渲染阶段

3、数据请求的最终呈现:业务代码中异步请求数据

预加载阶段是微信帮我们完成的。这是在打开并进入小程序之前完成的。

小程序启动时,会首先拉取代码包。在拉取代码包的时候,控制包的大小其实非常重要。之前听官方说1MB的代码下载大约需要1秒。当然,我已经很久没有做过小程序了。 ,不知道现在怎么样了

常见的意思是:

压缩代码并清理无用代码

图片在cdn上

采取分包策略

分包预加载

独立分包(版本要求有点高)

请求阶段优化:

您可以在此阶段发起请求,无需等待。

请求结果放入缓存,下次使用

请求中可以先显示骨架图

先反馈,后请求。例如,对于点赞按钮,您可以先更改按钮样式,然后发起异步请求。 (这个和微博点赞一样,默认成功,如果消息队列交易方式失败,下次进入界面就看不到点赞了)

渲染问题的性能提示:

问题:小程序也使用了渲染,与混合APP的原理大致相同,因此通过中间层通信会存在性能损耗问题。

混合应用程序:

小程序:

常见的优化方法:

1.减少数据量(去掉不影响视图的数据)

2、减少次数,合并频繁的。

3. Diff思想,精准数据操作,部分更新接口

尤其是下拉加载较多的时候,有时会卡住。这时候就需要考虑事件是否被频繁触发,导致卡住。

以上文章来自WX公众号-前端巅峰,作者谭金杰的《小程序技术要点与性能优化要点》

分享