Desenvolvimento de aplicativos HarmonyOS/OpenHarmony

HarmonyOS: HarmonyOS é um sistema operacional lançado oficialmente pela Huawei em 9 de agosto de 2019. É um sistema operacional distribuído orientado a todos os cenários, criando um super terminal virtual mundo interconectado, conectando organicamente pessoas, equipamentos e cenários. Com base nos recursos tradicionais do sistema de dispositivo único, o HarmonyOS propõe um conceito distribuído com base no mesmo conjunto de recursos do sistema e adaptando-se a vários formatos de terminal, que podem suportar vários dispositivos terminais.

Para os consumidores, o HarmonyOS pode integrar os recursos de vários terminais em cenários de vida para formar um "super terminal virtual", que pode realizar conexão rápida, assistência mútua e compartilhamento de recursos entre diferentes dispositivos de terminal, combinar dispositivos adequados e fornecer uma experiência de cenário completo suave. Para desenvolvedores de aplicativos, o HarmonyOS adota uma variedade de tecnologias distribuídas, para que o desenvolvimento e a implementação de aplicativos não tenham nada a ver com as diferenças na forma de diferentes dispositivos terminais, reduzindo a dificuldade e o custo do desenvolvimento. Isso permite que os desenvolvedores se concentrem na lógica de negócios de nível superior e desenvolvam aplicativos de maneira mais conveniente e eficiente. Para desenvolvedores de dispositivos, o HarmonyOS adota um esquema de design baseado em componentes, que pode ser adaptado de forma flexível de acordo com as capacidades de recursos e características comerciais do dispositivo para atender aos requisitos do sistema operacional de diferentes tipos de dispositivos terminais.

OpenHarmony: OpenHarmony é um sistema operacional desenvolvido pela Huawei, principalmente para aplicativos IoT e dispositivos inteligentes. Adota a arquitetura de microkernel e é caracterizada por alta eficiência, segurança e estabilidade. O OpenHarmony fornece uma estrutura de desenvolvimento e ferramentas que suportam o desenvolvimento em várias linguagens, como JavaScript, Java e C/C++. Os desenvolvedores podem usar as ferramentas e componentes de desenvolvimento fornecidos pelo OpenHarmony, como ArkUI, ArkJS, ArkCompiler, etc., para criar serviços como interface do usuário, desenvolvimento modular de aplicativos e armazenamento de dados.

Desenvolvimento de aplicativos: O desenvolvimento de aplicativos refere-se ao processo de levar um ou mais aplicativos do conceito à operação real usando linguagens de programação, ferramentas e estruturas. O desenvolvimento de aplicativos geralmente inclui as seguintes etapas:

  1. Determinar requisitos: antes do desenvolvimento do aplicativo, é necessário esclarecer os requisitos do aplicativo, incluindo requisitos funcionais, requisitos de desempenho, requisitos de segurança, etc.
  2. Design: De acordo com os requisitos, projete o programa aplicativo, incluindo design de arquitetura, design de interface, design de estrutura de dados, etc.
  3. Codificação: Codificação da aplicação utilizando uma linguagem de programação de acordo com os documentos de projeto e especificações.
  4. Teste: após a conclusão da codificação, o teste é necessário para garantir que o aplicativo funcione corretamente e esteja em conformidade com os requisitos e o design.
  5. Implantação: Implantar um aplicativo em um dispositivo ou plataforma de destino, tornando-o disponível para os usuários.
  6. Manutenção: Após o lançamento do aplicativo, ele precisa ser mantido, incluindo atualizações de versão, correção de bugs, otimização de desempenho, etc.

O desenvolvimento de aplicativos pode usar diferentes linguagens de programação e estruturas de desenvolvimento, como Java, Python, JavaScript, etc. Ao mesmo tempo, o desenvolvimento de aplicativos também precisa considerar fatores como experiência do usuário, otimização de desempenho e segurança para garantir a qualidade e a confiabilidade do aplicativo. Cada linguagem e estrutura tem suas vantagens e casos de uso. Ao mesmo tempo, a qualidade e a confiabilidade de um aplicativo dependem não apenas da linguagem de programação e da estrutura de desenvolvimento, mas também de fatores como experiência do usuário, otimização de desempenho e segurança. Durante o processo de desenvolvimento do aplicativo, iteração e otimização constantes são necessárias para garantir que o aplicativo final entregue atenda às necessidades dos usuários, forneça uma boa experiência do usuário e tenha estabilidade e segurança.

HarmonyOS/OpenHarmony é um sistema operacional lançado pela Huawei, usado principalmente para aplicativos IoT e dispositivos inteligentes. Diferente do Android, o HarmonyOS adota arquitetura de microkernel, o que o torna mais eficiente, seguro e estável.

Em termos de desenvolvimento de aplicativos HarmonyOS/OpenHarmony, a Huawei fornece estruturas e ferramentas de desenvolvimento, e os desenvolvedores podem usar JavaScript, Java, C/C++ e outras linguagens para desenvolvimento.

JavaScript, Java e C/C++ são três linguagens de programação diferentes, cada uma com características e cenários de aplicação diferentes.

  1. JavaScript: JavaScript é uma linguagem de script usada principalmente no desenvolvimento da web. Geralmente é usado no desenvolvimento front-end para lidar com a interação do usuário, validação de formulário, dinâmica da página, etc. O JavaScript também pode ser usado para desenvolvimento de back-end, como programação do lado do servidor com Node.js. JavaScript é uma linguagem de script usada principalmente no desenvolvimento web. Geralmente é usado no desenvolvimento front-end para lidar com a interação do usuário, validação de formulário, dinâmica da página, etc. O JavaScript também pode ser usado para desenvolvimento de back-end, como programação do lado do servidor com Node.js. JavaScript é uma linguagem interpretada que pode ser executada diretamente no navegador sem compilação prévia. Graças à sua sintaxe fácil de aprender e API rica, o JavaScript se tornou uma das linguagens mais usadas para desenvolvimento web. Ele pode ser usado não apenas para desenvolvimento da Web, mas também para desenvolvimento de aplicativos móveis, desenvolvimento de jogos e muito mais.

Os cenários de aplicação do JavaScript são muito amplos, e alguns deles são:

  1. Desenvolvimento front-end: o JavaScript geralmente é usado para lidar com a interação do usuário, validação de formulário, dinâmica da página, etc. Ele pode tornar as páginas da Web mais dinâmicas e interativas e melhorar a experiência do usuário.
  2. Desenvolvimento do lado do servidor: Com o Node.js, o JavaScript também pode ser usado para desenvolvimento do lado do servidor. Desta forma, os códigos front-end e back-end podem ser compartilhados, reduzindo a carga de trabalho de desenvolvimento e manutenção.
  3. Desenvolvimento de aplicativos móveis: usando JavaScript e estruturas relacionadas, como React Native e Ionic, é possível desenvolver aplicativos móveis multiplataforma.
  4. Desenvolvimento de jogos: jogos 2D e 3D podem ser desenvolvidos usando JavaScript e mecanismos de jogos relacionados, como Phaser e Unity.

  1. Java: Java é uma linguagem de programação orientada a objetos que é independente de plataforma e pode ser executada em diferentes sistemas operacionais e hardware. É amplamente utilizado no desenvolvimento de aplicativos corporativos, desenvolvimento de aplicativos móveis, desenvolvimento de jogos e outros campos.

Java é uma linguagem de programação orientada a objetos que é independente de plataforma e pode ser executada em diferentes sistemas operacionais e hardware. É amplamente utilizado no desenvolvimento de aplicativos corporativos, desenvolvimento de aplicativos móveis, desenvolvimento de jogos e outros campos.

Os recursos do Java incluem:

  1. Independência de plataforma: a máquina virtual de Java (JVM) permite que o código Java seja executado em qualquer plataforma que suporte a JVM, sem a necessidade de compilação separada para cada plataforma.
  2. Orientado a objetos: Java é uma linguagem orientada a objetos que oferece suporte a conceitos de programação orientada a objetos, como encapsulamento, herança e polimorfismo, o que torna o código mais modular e extensível.
  3. Segurança: Java possui mecanismos de segurança integrados para evitar injeção de código, estouro de buffer e outros problemas de segurança.
  4. Bibliotecas e frameworks ricos: Java possui bibliotecas e frameworks ricos que podem acelerar o desenvolvimento e melhorar a qualidade do código, como Spring, Hibernate, Android SDK, etc.
  5. Excelente desempenho: embora Java seja uma linguagem interpretada, sua tecnologia JIT (compilação just-in-time) pode compilar código quente em código de máquina local, obtendo assim um desempenho próximo ao C++.

Os cenários de aplicação de Java são muito amplos, e a seguir estão alguns deles:

  1. Desenvolvimento de aplicativos de nível empresarial: Java é amplamente utilizado no desenvolvimento de aplicativos de nível empresarial, como comércio eletrônico, finanças, logística e outros campos.
  2. Desenvolvimento de aplicativos móveis: usando Java e Android SDK, você pode desenvolver aplicativos móveis para a plataforma Android.
  3. Desenvolvimento de jogos: jogos 2D e 3D podem ser desenvolvidos usando Java e mecanismos de jogos como LibGDX e jMonkeyEngine.
  4. Desenvolvimento Web: Os aplicativos da Web podem ser desenvolvidos usando Java e estruturas relacionadas, como Spring e Struts.

  1. C/C++: C e C++ são linguagens compiladas com desempenho eficiente e acesso direto ao hardware subjacente. Eles são amplamente utilizados em programação em nível de sistema, desenvolvimento de jogos, sistemas embarcados e outros campos. C++ é uma extensão de C que introduz o conceito de programação orientada a objetos.

A linguagem C tem as seguintes características:

  1. Linguagem de baixo nível: a linguagem C pode manipular diretamente a memória e o hardware, para que possa lidar com dados binários e hardware subjacente com eficiência.
  2. Linguagem estruturada: A linguagem C é estruturada, com apenas um ponto de entrada, a função principal. Em um programa, todo código deve ser colocado dentro de funções.
  3. Linguagem estaticamente tipada: A linguagem C é uma linguagem estaticamente tipada, que precisa determinar o tipo de variáveis ​​em tempo de compilação.
  4. Linguagem fracamente tipada: A verificação de tipo da linguagem C é relativamente frouxa e é fácil ser incomodado por problemas como estouro e cross-border.
  5. Código eficiente: como a linguagem C pode manipular diretamente a memória e o hardware, o código gerado é muito eficiente.

Os cenários de aplicação da linguagem C são muito amplos, alguns deles são:

Os cenários de aplicação da linguagem C++ são muito amplos, alguns deles são:

  1. Programação do sistema: A linguagem C é a principal linguagem de programação para software de nível de sistema, como sistemas operacionais, drivers e compiladores.
  2. Sistema incorporado: a linguagem C também é a principal linguagem de programação para sistemas incorporados, como casa inteligente, dispositivos vestíveis inteligentes, etc.
  3. Desenvolvimento de jogos: A linguagem C também é amplamente utilizada no desenvolvimento de jogos, como mecanismos de jogos, motores de física, etc.
  4. Programação de rede: A linguagem C é amplamente utilizada na programação de rede, como pilha de protocolo TCP/IP, protocolo de roteador, etc.

    A linguagem C++ tem as seguintes características:

  5. Linguagem de baixo nível: A linguagem C++ pode manipular diretamente a memória e o hardware, para que possa lidar com dados binários e hardware subjacente com eficiência.
  6. Linguagem Estruturada: A linguagem C++ é estruturada, com apenas um ponto de entrada, a função principal. Em um programa, todo código deve ser colocado dentro de funções.
  7. Linguagem estaticamente tipada: A linguagem C++ é uma linguagem estaticamente tipada, que requer que o tipo de variáveis ​​seja determinado em tempo de compilação.
  8. Linguagem fortemente tipada: A verificação de tipo da linguagem C++ é relativamente rigorosa, o que pode efetivamente reduzir erros.
  9. Orientado a objetos: A linguagem C++ oferece suporte à programação orientada a objetos, com recursos como classes, objetos, herança e polimorfismo, que podem melhorar a capacidade de reutilização e manutenção do código.
  10. STL: A biblioteca padrão da linguagem C++ fornece um grande número de contêineres, algoritmos e outros componentes, que podem facilitar a realização de estruturas de dados e algoritmos.
  11. Programação do sistema: a linguagem C++ é uma das principais linguagens de programação para software de nível de sistema, como sistemas operacionais, drivers e compiladores.
  12. Desenvolvimento de jogos: a linguagem C++ também é amplamente utilizada no desenvolvimento de jogos, como motores de jogo, motores de física, etc.
  13. Computação científica: a linguagem C++ é amplamente utilizada em computação científica, computação numérica e outros campos, como simulação numérica, processamento de imagem, etc.
  14. Desenvolvimento da Web: a linguagem C++ também é usada no desenvolvimento da Web, como o uso da estrutura Cherry para desenvolver aplicativos da Web.

Embora as três línguas tenham algumas semelhanças na gramática e na estrutura, seus cenários de aplicação e características são diferentes. Ao escolher uma linguagem de programação, você precisa escolher a linguagem mais adequada de acordo com os cenários e necessidades específicas da aplicação.

Especificamente, o HarmonyOS fornece as seguintes ferramentas e componentes de desenvolvimento:

  1. ArkUI: Uma ferramenta de desenvolvimento para construir interfaces de usuário que suportam layouts responsivos e adaptativos.

ArkUI é uma estrutura declarativa de desenvolvimento de interface do usuário para a construção de interfaces de aplicativos HarmonyOS. Ele usa sintaxe de informações de interface do usuário minimalista, componentes de interface do usuário avançados e visualização em tempo real para melhorar a eficiência do desenvolvimento.

  1. ArkJS: um ambiente de tempo de execução JavaScript compatível com Node.js e WebAssembly.

ArkJS é uma estrutura de desenvolvimento de aplicativos JavaScript, que é implementada em uma variedade de linguagens de programação, incluindo JavaScript, C/C++, etc. ArkJS envolve vários componentes, como compilador JS front-end, JS back-end, tempo de execução JS, depurador JS, etc. Entre eles, o Ark JS Runtime (Ark JS Runtime) é o tempo de execução usado pelos aplicativos JavaScript no OpenHarmony, incluindo alocador de objetos JS e coletor de lixo, biblioteca padrão em conformidade com a especificação ECMAScript, interpretador para executar o bytecode Ark (Ark Bytecode) gerado pelos componentes front-end do Ark, cache inline para armazenar classes ocultas, interface de função externa (AFFI) e outros módulos.

  1. ArkCompiler: Um compilador que suporta compilação AOT e JIT, que pode melhorar o desempenho e a velocidade de resposta do aplicativo.

ArkCompiler é um novo mecanismo de compilação e operação de sistema e aplicativo. Ele implementa a compilação estática para toda a semântica Java, "traduz" diretamente a linguagem Java em linguagem de máquina (compilação estática), elimina a sobrecarga extra da compilação dinâmica da máquina virtual e realiza a compatibilidade do desenvolvimento e a eficiência da operação.

  1. ArkUIWidget: fornece alguns componentes de interface do usuário comumente usados, como botões, caixas de texto etc., para facilitar que os desenvolvedores criem interfaces de usuário rapidamente.

ArkUIWidget é uma biblioteca de componentes de interface do usuário lançada pela Huawei para desenvolvimento de interface do usuário de aplicativos HarmonyOS. Ele fornece uma variedade de componentes e estilos de interface do usuário, incluindo botões, formulários, janelas pop-up, menus, layouts, etc. Os desenvolvedores podem usar diretamente esses componentes para criar rapidamente interfaces de interface do usuário bonitas e fáceis de usar. Ao mesmo tempo, o ArkUIWidget também oferece suporte a funções como temas personalizados e extensões de estilo, para que os desenvolvedores possam personalizar seus próprios estilos de interface do usuário de acordo com suas necessidades.

  1. ArkModule: Uma ferramenta de desenvolvimento para construir aplicações modulares, suportando desenvolvimento modular e carregamento modular.

ArkModule é uma estrutura modular de desenvolvimento de aplicativos lançada pela Huawei para o desenvolvimento e gerenciamento de aplicativos HarmonyOS. Ele fornece uma série de componentes modulares e APIs, incluindo gerenciamento de aplicativos, gerenciamento de módulos, gerenciamento de serviços, gerenciamento de dados e outras funções. Os desenvolvedores podem escolher diferentes componentes e APIs de acordo com suas necessidades para criar rapidamente aplicativos altamente modulares e escaláveis. Ao mesmo tempo, o ArkModule também fornece uma série de ferramentas e suporte de plataforma, como empacotamento de aplicativos, depuração de aplicativos, publicação de aplicativos, etc., para facilitar os desenvolvedores a desenvolver, testar e liberar aplicativos.

  1. Armazenamento Ark: fornece algumas opções de armazenamento de dados, como armazenamento local, armazenamento remoto e armazenamento de banco de dados.
  2. Serviço Ark: Fornece alguns serviços comuns, como serviço push, serviço de login, serviço de pagamento, etc.

Na linguagem ArkTS, para implementar o conteúdo do cartão de atualização do evento de mensagem no desenvolvimento do aplicativo HarmonyOS/OpenHarmony, são necessárias as seguintes etapas:

  1. Defina um evento de mensagem no cartão, por exemplo:

@Component({  
  selector: 'my-card',  
  template: `  
    <div>  
      <h1>{
   
   {title}}</h1>  
      <p>{
   
   {content}}</p>  
      <button (click)="onRefresh()">Refresh</button>  
    </div>  
  `,  
  directives: [FORM_DIRECTIVES],  
  events: ['onMessage']  
})  
export class MyCardComponent implements OnInit {  
  title: string;  
  content: string;  
  onMessage(event: any) {  
    // 处理message事件,刷新卡片内容  
    this.title = event.title;  
    this.content = event.content;  
  }  
  ngOnInit() {  
    // 监听message事件,刷新卡片内容  
    this.onMessage({title: 'Title', content: 'Content'});  
  }  
  onRefresh() {  
    // 触发message事件,刷新卡片内容  
    this.onMessage({title: 'New Title', content: 'New Content'});  
  }  
}

Este é um exemplo de código do componente MyCardComponent, que é usado para exibir o conteúdo de um cartão, incluindo título e conteúdo, e fornece um botão de atualização. O componente usa o decorador @Component para especificar o nome, modelo, instruções e eventos do componente.

Esse componente usa vinculação de dados bidirecional para exibir os valores de título e conteúdo no modelo por meio da sintaxe { {}}. Ao mesmo tempo, também define um método onMessage, que é usado para tratar o evento de mensagem e atualizar o conteúdo do cartão quando o evento ocorre. No método ngOnInit, o componente escuta o evento de mensagem e atualiza o conteúdo quando o cartão é inicializado. No método onRefresh, o componente aciona o evento de mensagem e atualiza o conteúdo do cartão.

Deve-se observar que este componente usa a diretiva FORM_DIRECTIVES, portanto FORM_DIRECTIVES precisa ser importado no componente. Ao mesmo tempo, esse componente também define um evento onMessage, que é usado para notificar outros componentes ou páginas para atualizar o conteúdo do cartão.

 2. Acione o evento de mensagem no componente pai, por exemplo:

@Component({  
  selector: 'my-app',  
  template: `  
    <my-card (onMessage)="onMessage($event)"></my-card>  
  `,  
  directives: [MyCardComponent]  
})  
export class AppComponent {  
  onMessage(event: any) {  
    // 触发message事件,刷新卡片内容  
    this.messageEvent = event;  
  }  
}

Este é um exemplo de código de um componente AppComponent que contém o componente MyCardComponent e escuta seu evento onMessage.

O componente usa o decorador @Component para especificar o nome, modelo, diretiva e outras informações do componente. Dentre eles, o componente MyCardComponent é utilizado no template, e (onMessage)="onMessage($event)"seu evento onMessage é ouvido através da sintaxe.

No método onMessage de AppComponent, ele recebe o evento onMessage passado por MyCardComponent e o atribui à variável messageEvent. Quando a variável messageEvent muda, a lógica de negócios relacionada pode ser acionada para atualizar o conteúdo do cartão.

 3. Defina o evento de mensagem no componente pai, por exemplo:

@Component({  
  selector: 'my-app',  
  template: `...`,  
  directives: [MyCardComponent]  
})  
export class AppComponent {  
  messageEvent: any;  
}

Este é um exemplo de código de um componente AppComponent que contém o componente MyCardComponent e escuta seu evento onMessage.

O componente usa o decorador @Component para especificar o nome, modelo, diretiva e outras informações do componente. Dentre eles, o componente MyCardComponent é utilizado no template, e (onMessage)="onMessage($event)"seu evento onMessage é ouvido através da sintaxe.

Em AppComponent, declara uma variável messageEvent para armazenar o evento onMessage passado por MyCardComponent. Quando a variável messageEvent muda, a lógica de negócios relacionada pode ser acionada para atualizar o conteúdo do cartão.

No desenvolvimento de aplicativos HarmonyOS/OpenHarmony, o evento de mensagem geralmente é usado para transferir dados entre componentes ou atualizar o conteúdo do cartão. Para atualizar o conteúdo do cartão usando o evento de mensagem, você pode seguir estas etapas:

  1. No componente MyCardComponent, defina um método onMessage para manipular o evento de mensagem. Por exemplo:

    @Component({  
      selector: 'my-card',  
      template: `...`,  
      directives: [FORM_DIRECTIVES],  
      events: ['onMessage']  
    })  
    export class MyCardComponent implements OnInit {  
      title: string;  
      content: string;  
      
      onMessage(event: any) {  
        // 处理message事件,刷新卡片内容  
        this.title = event.title;  
        this.content = event.content;  
      }  
    }

    Este é um exemplo de código do componente MyCardComponent, que é usado para exibir o conteúdo de um cartão e ouvir o evento de mensagem para atualizar o conteúdo do cartão.

    O componente usa o decorador @Component para especificar o nome, modelo, diretiva e outras informações do componente. Dentre eles, o template mostra o conteúdo do cartão, incluindo título e conteúdo. Ao mesmo tempo, ele usa a diretiva FORM_DIRECTIVES, portanto, precisa importar FORM_DIRECTIVES no componente.

    O componente também define um método onMessage para lidar com eventos de mensagem. Quando o componente receber o evento de mensagem, ele atribuirá as propriedades de título e conteúdo no evento às propriedades de título e conteúdo do componente, atualizando assim o conteúdo do cartão.

    Ao usar MyCardComponent no componente pai, você pode (onMessage)="onMessage($event)"ouvir seu evento onMessage por meio da sintaxe e processar o evento no método onMessage para atualizar o conteúdo do cartão.

  2. No modelo do componente MyCardComponent, adicione um elemento de botão e vincule um evento de clique para acionar o evento de mensagem. Por exemplo:

    <button (click)="onRefresh()">Refresh</button>

    Este código é a sintaxe do modelo do Angular, representando um botão que aciona o método onRefresh quando clicado. Especificamente: <button> é um elemento de botão em HTML, (click) significa ouvir o evento click;

  3. Na classe do componente, você precisa definir o método onRefresh: onRefresh() é um método da classe do componente Angular para tratar o evento click.

    import { Component } from '@angular/core';  
      
    @Component({  
      selector: 'app-my-component',  
      template: '<button (click)="onRefresh()">Refresh</button>',  
    })  
    export class MyComponent {  
      onRefresh() {  
        // 点击按钮后执行的逻辑  
      }  
    }
  4. No método onRefresh, você pode escrever a lógica que precisa ser executada após clicar no botão.

    Este é um exemplo de código de um componente MyComponent, que é usado para exibir um botão que aciona o método onRefresh quando clicado. Especificamente:

  5. import { Component } from '@angular/core': Importe o decorador de componentes do módulo principal do Angular;
  6. @Component: Use o decorador de componentes para definir componentes, incluindo nomes de componentes, modelos, instruções e outras informações;
  7. selector: O seletor CSS do componente especificado, que é usado para fazer referência ao componente no modelo;
  8. template: O modelo do componente especificado, onde um botão é exibido e o evento click é vinculado;
  9. onRefresh(): define um método para tratar o evento click, ou seja, a lógica executada após o clique no botão.
    <app-my-component></app-my-component>

    Aqui está um exemplo usando o componente MyComponent. Quando o componente é renderizado, ele exibe um botão e escuta eventos de clique. Quando o usuário clica no botão, o método onRefresh é acionado para executar a lógica correspondente.

    Neste exemplo, o componente MyComponent é <app-my-component></app-my-component>usado via sintaxe. Essa sintaxe diz ao Angular para inserir um componente MyComponent no modelo e renderizá-lo. Quando o componente é renderizado, ele @Componentexibe um botão de acordo com o modelo definido no decorador e escuta eventos de clique. Quando o usuário clica no botão, o método onRefresh é acionado para executar a lógica correspondente.

  10. No método onRefresh do componente MyCardComponent, acione o evento message. Por exemplo:

    @Component({  
      selector: 'my-app',  
      template: `  
        <my-card (onMessage)="onMessage($event)"></my-card>  
      `,  
      directives: [MyCardComponent]  
    })  
    export class AppComponent {  
      onMessage(event: any) {  
        // 触发message事件,刷新卡片内容  
        this.messageEvent = event;  
      }  
    }

    Este é um exemplo de código de um componente AppComponent que contém o componente MyCardComponent e escuta seu evento onMessage.

    O componente usa o decorador @Component para especificar o nome, modelo, diretiva e outras informações do componente. Dentre eles, o componente MyCardComponent é utilizado no template, e (onMessage)="onMessage($event)"seu evento onMessage é ouvido através da sintaxe.

    No método onMessage de AppComponent, ele recebe o evento onMessage passado por MyCardComponent e o atribui à sua própria variável messageEvent. Quando a variável messageEvent muda, a lógica de negócios relacionada pode ser acionada para atualizar o conteúdo do cartão.

  11. Quando o usuário clicar no botão Atualizar no componente MyCardComponent, MyCardComponent acionará o evento de mensagem e passará o novo título e conteúdo para AppComponent. Após o AppComponent receber o evento de mensagem, ele atualizará sua própria variável messageEvent para atualizar o conteúdo do cartão.

    Quando o usuário clicar no botão Atualizar no componente MyCardComponent, MyCardComponent acionará o método onRefresh. Neste método, o evento message é acionado chamando o método raise, passando o novo título e conteúdo como parâmetros para o evento.

    (onMessage)="onMessage($event)"O componente AppComponent escuta o evento onMessage de MyCardComponent por meio da sintaxe. Quando AppComponent receber o evento de mensagem, ele chamará seu próprio método onMessage. Nesse método, atribua o título e o conteúdo nos parâmetros do evento à sua própria variável messageEvent.

    Como a variável messageEvent é uma propriedade de AppComponent, quando ela é alterada, ela pode acionar a lógica de negócios relacionada e atualizar o conteúdo do cartão.

Em suma, o desenvolvimento de aplicativos HarmonyOS/OpenHarmony exige que os desenvolvedores estejam familiarizados com sua estrutura e ferramentas de desenvolvimento e sejam capazes de usar de forma flexível vários idiomas para desenvolvimento. Ao mesmo tempo, os desenvolvedores também precisam prestar atenção à experiência do usuário e à otimização do desempenho para garantir a qualidade e a estabilidade do aplicativo.

Acho que você gosta

Origin blog.csdn.net/m0_68231587/article/details/131197227
Recomendado
Clasificación