小程序---总结
底层根本是:
react reconciler 中 hostconfig 运行机制?
参考:https://cloud.tencent.com/developer/article/1728155?from=article.detail.1740871
参考:rax运行时原理:https://blog.csdn.net/weixin_39522423/article/details/111120687
参考:支付宝小程序架构:https://blog.csdn.net/weixin_34414196/article/details/89127950
现在互联网应用: web只是官网描述介绍app下载; app应用原生只是做壳儿 页面都是用hybrid开发技术---flutter、rax ,rn ,appUi, weex ; 然后必须还要有 ---小程序
现在的前端开发框架都是虚拟dom , 没有 <script></script>标签,也没有<mete >标签, render里面的 html原生 都是js 实现的。 现在引用包都是用npm 安装的形式。
1 小程序的webview 打开h5链接,类似原生app一样,点击内容超链的时候可以拿到超链的url地址。
2 小程序 setData是同步的; amxl界面点击事件是异步触发的。 虽然不想web js和html在同一个线程中会有阻塞,但是分开webview进行处理属于和 Jscore处理js逻辑 ,原生navtie同步 但是会有线程同步时间问题。
3 现在 连做app除了原生部分功能外,其他都是用hybird app了 也是用前端js写页面 逻辑 运行借助于原生jscore 最终打包的是原生文件(和原生交互调用,js 是虚拟dom 和 ui 是框架提供的,最终转成原生对应的 。依赖于系统 )。 2 小程序的ui层还是运行在webview ,js层是借助于原生jscore转换的 分了2个线程交互通信,还能调用原生app封装的功能 (依赖于原生宿主app)。 3 web pc h5之类的还是js ,只不过写法越来越像java 了,也有class ,interface。 只是运行在浏览器。 4 最新google出了一个flutter Dart ( 这个更高级 有前端特性即时编译 ,还能有aot 转成字节码) 也是编写一次 ,android ios 都可以运行。 还支持web 开发。 这个是全新的dart语言 ,抛弃了js 。 其他:java就是依赖于jvm虚拟机转成classic字节码。 所有虚拟机调优。gc调优。
4 小程序data的字段直接用,会有缓存,哪怕页面返回 ,只要页面没有死 ,在此进入这个页面 还是上次改变的值 true。
例如:
data: {
fromExam: false, // 初始值是false
}
this.data.fromExam = true;
除非:
if (query && query.from === 'exam') {
this.data.fromExam = true;
} else {
this.data.fromExam = false;
}
this.setData({ // 用setData就会每次刷新 ,是页面级的页面关闭就恢复。
fromExam: true
});
反正现在纯原生app开发很少了, 基本都是hybird app开发 比如 rax,rn ,uniapp, tero 等; 而且上来先做小程序;web pc只做官网。
工作1-3年,基础知识,多看书。多跟着别人做项目,学习经验。 工作3-5年,新知识,高级知识,自己独立做项目,总结经验。尝试不同的语言。 工作5-8年,工作职位,要从设计,管理方面要求自己,可以尝试走管理路线(项目经理或cto)。 工作10年及以上, 自己做些项目,产品,尝试为创业做准备。 上大学和不上大学区别很大,上品牌大学和普通大学区别也很大,后天的努力最大。 ---无论它是在遥远的远方,还是在出发的地方、哪里有希望哪里就是我们的方向;终点、只不过是梦想起飞的地方。