连续分享了很多天鸿蒙仓颉语言的开发教程,大家现在应该都知道鸿蒙开发有ArkTs和仓颉两种开发语言,这两种语言有些相似,而且还支持混合开发,今天就分享一下怎么实现ArkTs和仓颉的混合开发,分不清这两种语言的友友今天可能要头疼了。

官方文档对这两种语言的混合开发进行了非常大篇幅非常详细的介绍,但是幽蓝君自己学习完之后感觉不用那么麻烦,因为编译器能帮我们做绝大多数的工作。

首先打开DevEco Studio新建项目,此处选择CangJie Hybrid即可创建混合开发项目:

看一下创建后的结构目录:

可以看到项目中分别有cangjie的目录和ArkTs的项目目录,大家仔细看一下可以发现项目的入口文件是在ArkTS目录中的,就是说虽然创建项目选择的是仓颉混编项目,其实是仓颉代码依附在ArkTs的项目上,所以在混合开发项目运行过程中的页面控制器和主线程大都和仓颉无关,除后端功能以外,仓颉负责的部分主要是开发组件。

说的更简单一点,在混编项目中,ArkTS的页面可以嵌入仓颉的部分UI,而仓颉则不可以创建单独的页面。所以在混编项目中页面的生命周期和路由跳转也都和仓颉无关。

下面分享下详细的开发过程。

新创建的项目为我们演示了ArkTs如何调用仓颉中的方法,幽蓝再介绍下ArkTs如何引用仓颉的组件。

首先在cangjie文件夹右键创建空白仓颉页面,创建完成后在cangjie文件夹下新增了.cj文件,不光如此,在Arkts目录中新增了名字相同的.ets文件:

这是编译器自动帮我们完成了封装工作,现在我们想要跳转仓颉页面只需要跳转同名的ArkTs页面就行了。

看一下这个自动创建的页面的代码,就是创建了一个ArkTS页面并引入封装好的仓颉开发的组件。

所以混合开发我们要做的工作就是在仓颉文件中写仓颉,在ArkTS文件中写ArkTS,其他所有的工作编译器都替我们做了,鸿蒙对开发者实在是太太太友好了。

最后有一些感慨,幽蓝君从业十年,熟识多种开发语言,有的面向对象,有的面向过程,有的注重性能。鸿蒙的ArkTs和仓颉是唯二的为开发者考虑的开发语言,让常见在软件背后默默敲代码的老程序员觉得无比感动。

今天就到这吧,感谢大家阅读。##HarmonyOS语言##仓颉##购物#

详解HarmonyOS NEXT系统中ArkTS和仓颉的混合开发的更多相关文章

  1. 详解在Linux系统中安装Tomcat

    本文以在CentOS 7.6中安装Tomcat8.5为例进行安装,其他系统和版本都是大同小异的. 安装JDK 安装Tomcat之前,需要先安装JDK,可以参看之前的文章详解在Linux系统中安装JDK ...

  2. [linux]top命令详解-实时显示系统中各个进程的资源占用状况

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

  3. 详解在Linux系统中安装JDK

    本文以在CentOS 7.6中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面. 首先,接受许可协议,如下图: 然后,根据Linux系统的位数选择要下 ...

  4. 图文详解在Windows系统中安装JDK

    本文以在Windows10中安装JDK8为例进行安装,其他系统和版本都是大同小异的. 下载 进入Oracle官方网站的下载页面:https://www.oracle.com/technetwork/j ...

  5. 详解Windows 7系统中IE8/IE9/IE10三个版本的关系(转)

    今年(2013)年初,微软开放了姗姗来迟的 IE10 for Windows 7 版本下载.至此,Windows 7 平台上可以运行三个 IE 浏览器版本.虽然 Windows 与 IE 经历了诸多版 ...

  6. Unity Jobsystem 详解实体组件系统ECS

    原文摘选自Unity Jobsystem 详解实体组件系统ECS 简介 随着ECS的加入,Unity基本上改变了软件开发方面的大部分方法.ECS的加入预示着OOP方法的结束.随着实体组件系统ECS的到 ...

  7. 详解Linux下iptables中的DNAT与SNAT设置(转)

    详解Linux下iptables中的DNAT与SNAT设置 这篇文章主要介绍了Linux下iptables中的DNAT与SNAT设置,是Linux网络配置中的基础知识,需要的朋友可以参考下   原文连 ...

  8. Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制

    Java网络编程和NIO详解1:JAVA 中原生的 socket 通信机制 JAVA 中原生的 socket 通信机制 摘要:本文属于原创,欢迎转载,转载请保留出处:https://github.co ...

  9. 详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud

    转载地址:https://www.jb51.net/article/109382.htm 这篇文章主要介绍了详解如何在CentOS7中使用Nginx和PHP7-FPM安装Nextcloud,会通过 N ...

  10. Scala 深入浅出实战经典 第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...

随机推荐

  1. Git Pull Failed:You have not concluded your merge.Exiting because of unfinished merge

    前言 在拉取远程代码时,出现 Git Pull Failed:You have not concluded your merge.Exiting because of unfinished merge ...

  2. Oracle临时表会随另外一个表的创建自动提交并清空

    创建一个临时表,用它导入一些数据 用这个临时表生成另外一个表,用create table ... 但生成的这表总是空的. 原来create table 前会进行提交commit, 而临时表在commi ...

  3. 一款torrent文件格式分析工具(绿色纯天然)

    点击下载 1.主界面 2.文件分析(显示文件所在分片的位置) 3.获取指定分片所在的peers服务器列表 一只会铲史的猫

  4. MFC非模态对话框的关闭

    如果要在点击按钮的情况下,销毁非模态对话框,只需要把按钮的事件映射到OnCancel函数, 里面调用DestroyWindow(), 然后重写PostNCDestroy(), delete 指针. 另 ...

  5. 抓包分析:wireshark抓不到TLS1.3数据包中证书的解决方案

    近日工作中遇到需要分析使用TLS1.3协议进行通信的数据包的情况,但使用wireshark进行分析发现不能抓到服务端证书,感到诧异遂设法解决 这篇博客给出解决方案,和简单的原理分析 解决方案: 第一步 ...

  6. JVM堆内存(heap)详解

    JAVA堆内存管理是影响性能主要因素之一.堆内存溢出是JAVA项目非常常见的故障,在解决该问题之前,必须先了解下JAVA堆内存是怎么工作的.先看下JAVA堆内存是如何划分的,如图:Java堆内存又溢出 ...

  7. static修饰成员方法、static修饰成员的特点总结、浅聊主方法-java se进阶 day01

    1.工具类的介绍 工具类不是用于描述事物的类,而是帮我们完成事情的类(打工) 如图 当我们编写完这个类后,我们会发现一件事,这个类自己本身并没有意义,这个类完全是给用户进行调用方法的 既然是专门给用户 ...

  8. C#元数据的概念,以及一个使用了lambda表达式的简单例子

    先看一个例子 假设你写了一个 C# 类库 MathUtils.dll: public class Calculator { public int Add(int a, int b) => a + ...

  9. dxSpreadSheet的报表

    这个玩意还真的很棒.几乎把excel的都融进来了.现在说Repoert. In addition to all the functionality available in the Spreadshe ...

  10. [设计模式/Java/多线程] 设计模式之单例模式【9】

    0 序 此文系对最常见的设计模式----单例模式的最全总结. 1 概述:单例模式 模式定义 单例模式: 保证1个类有且仅有1个实例,并提供1个访问它的全局访问点. 1个类有且仅有1个实例,并自行实例化 ...