Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 与JavaScript的Clojurescript互操作性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经构建了@L_262_0@主要使用Angular的应用程序.现在我想将项目转换为Clojurescript.我们都知道Clojurescript与 JavaScript的互操作非常好,但是反过来可行吗?

常规JavaScript / Angular代码如何利用Clojurescript生成的JavaScript?

我们的梦想是在clojurescript中编写新功能,并让它们与遗留代码并行工作.

有关这方面的任何提示或技巧都是受欢迎的.

Clojurescript变量,函数和deftypes /记录是普通的JS变量,函数和构造函数/对象,所以你可以在你的javascript中使用cljs.core.abc()并调用clojurescript而不会出现问题.

警告是:

>名字改变. Clojurescript名称允许比javascript更广泛的字符,因此许多函数名称将被释放.例如. cljs.core /<成为cljs.core._LT_.@H_301_14@>宏.宏仅存在于clojurescript编译时,因此您无法使用javascript中的CLJS宏.@H_301_14@>高级编译. Clojurescript核心非常大,它依赖于Google Closure编译器来消除死代码,这只在高级编译中可用.在纯粹的clojurescript代码but harder in javascript code中,使用高级编译非常容易.(最大的危险是混合字符串和符号@L_607_19@访问.)

您有很多选择:

> CLJS将遗留代码嵌入为库.您的程序入口点是CLJS,但使用您的遗留代码,如外部库.您的遗留代码为CLJS调用遗留代码的位置提供了外部代码.传统代码调用使用^:export显式导出的CLJS函数(如果您定义名称)或类似于goog.exportSymbol.CLJS和遗留代码部署在单独构建的单独JS文件中.@H_301_14@> CLJS直接嵌入遗留代码.程序入口点是CLJS,但您的遗留代码是编译到同一项目中的其他js. CLJS和遗留代码部署在由clojurescript编译器构建的单个JS文件中.要使用高级编译,您的遗留代码必须安全地与高级编译一起使用,并且结构化便与Google Closure编译器一起使用(goog.provides / requires,type Annotations等). Angular可能必须保持独立,但有@L_262_0@angular extern available.@H_301_14@>旧代码将CLJS代码称为库.这与“CLJS将遗留代码作为库嵌入”几乎相同,除了您的入口点是遗留代码并且它调用导出的cljs函数.@H_301_14@>传统代码通过库(如mori)使用一些CLJS功能.这里你没有直接使用CLJS,而是@L_262_0@JS库,它将clojurescript的一些功能暴露为普通的Js.它仍然是@L_262_0@单独的js库,你永远不会写任何clojurescript.

大佬总结

以上是大佬教程为你收集整理的angularjs – 与JavaScript的Clojurescript互操作性全部内容,希望文章能够帮你解决angularjs – 与JavaScript的Clojurescript互操作性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。