如何确定Ionic是否适合您的项目
by Simon Grimm
西蒙·格里姆(Simon Grimm)
如何確定Ionic是否適合您的項目 (How to find out if Ionic is the right choice for your project)
Ionic has been around for quite some years. With the latest release of version 4, it has become an even better option for developing hybrid apps than it was already. Still, there are drawbacks and scenarios where Ionic might not be (or should not be) your first choice.
離子已經(jīng)存在了很多年。 在最新版本的版本4中 ,它已經(jīng)成為開發(fā)混合應用程序的最佳選擇。 盡管如此,在某些缺點和情況下,Ionic可能不是(或不應該)您的首選。
In this article, we’ll take a look at questions you should answer before picking Ionic for your next project. In the end, the result might very likely still be Ionic, but there are other great alternatives as well.
在本文中,我們將介紹在為下一個項目選擇Ionic之前應回答的問題。 最后,結(jié)果很可能仍然是Ionic,但是還有其他很好的選擇。
Software Development is no competition and we don’t need a winner here. We can accept that there are many great frameworks in this world. Each has its unique strengths and tradeoffs. You can embrace a great framework for your job or spend time explaining why framework x is so bad. The decision is up to you, so choose wisely how you want to spend your time.
軟件開發(fā)不是競爭,這里我們不需要贏家。 我們可以接受這個世界上有許多很棒的框架。 每個都有其獨特的優(yōu)勢和權(quán)衡。 您可以為工作選擇一個好的框架,也可以花時間解釋為什么框架x如此糟糕。 該決定取決于您,因此請明智地選擇如何度過自己的時間。
Be aware that the term Hybrid Apps can sometimes still be a red flag for decision makers. If they are not convinced after uncovering the 10 Hybrid Myths, this article will give them a clearer path.
請注意, 混合應用程序一詞有時對于決策者來說仍然是一個危險信號。 如果在發(fā)現(xiàn)10個混合神話之后仍不相信他們,那么本文將為他們提供一條更清晰的道路。
If you’ve already fallen in love with Ionic or want to learn more about it, you can take the next step with my exclusive Ionic learning platform the Ionic Academy. It offers courses, projects, and an awesome community to help you become an Ionic Developer.
如果您已經(jīng)愛上Ionic或想了解更多有關(guān)Ionic的信息,則可以使用我獨有的Ionic學習平臺Ionic Academy進行下一步。 它提供課程,項目和一個很棒的社區(qū),以幫助您成為Ionic Developer。
你打算做什么 (What’s your project?)
In the beginning, there’s an idea or task that will become a project later. At this stage, you need to find out what platforms you want to support. You also need to decide what are your project’s biggest priorities. If you develop something completely new, it’s easier to pick something new. It is much harder when you already have requirements based on a legacy system.
最初,有一個想法或任務將在以后成為項目。 在此階段,您需要找出要支持的平臺 。 您還需要確定項目的最大優(yōu)先事項 。 如果您開發(fā)了全新的內(nèi)容,則選擇新內(nèi)容會更容易。 當您已經(jīng)具有基于舊系統(tǒng)的需求時,要困難得多。
First of all, where do you want to offer the app? Inside the native app stores, on the web, as a PWA or even as a desktop application?
首先, 您想在哪里提供該應用程序 ? 在本機應用程序商店內(nèi)部,在Web上,作為PWA還是作為桌面應用程序?
Your answer will be one or a combination of these. If you are targeting many platforms, Ionic would be a good choice.
您的答案將是這些之一或兩者結(jié)合。 如果您針對許多平臺,那么Ionic將是一個不錯的選擇。
When you only need a web application, create for example a pure Angular project. If you only need desktop apps, use Electron or something completely different. (This is not my main area of focus, really).
僅在需要Web應用程序時,例如,創(chuàng)建一個純Angular項目。 如果只需要桌面應用程序,請使用Electron或完全不同的工具。 ( 確實,這不是我的主要重點領(lǐng)域 )。
But once you see that you need to target mobile and web, Ionic offers a great way to keep your code in a code base with one language. At this point, it doesn’t matter if you need a native app or PWA, because you can get both with Ionic.
但是,一旦您發(fā)現(xiàn)需要針對手機和網(wǎng)絡,Ionic提供了一種很好的方法來將您的代碼保持在一種語言的代碼庫中。 在這一點上,您是否需要本機應用程序或PWA都無關(guān)緊要,因為您可以通過Ionic獲得兩者。
The result of using a cross-platform framework is potentially higher when you use it as a cross-platform tool. This always means it’s not going to be 100% like doing it with the inherent approach of the respective platform. You can get close to it to a certain degree while your cost decreases.
當您將其用作跨平臺工具時,使用跨平臺框架的結(jié)果可能更高。 這始終意味著它不會像使用相應平臺的固有方法那樣百分百地做到這一點。 在降低成本的同時,您可以在一定程度上接近它。
Which brings us to the priorities of the project. If your priority is to have the best 3D visuals an app has ever seen, stop reading here. That’s not a use case for Ionic but something like Unity.
這將我們帶到了項目的優(yōu)先事項。 如果您的首要任務是擁有應用程序所見過的最佳3D視覺效果,請在此處停止閱讀。 這不是Ionic的用例,而是Unity之類的東西。
If your priority is to offer your customers a solution on all their preferred platforms, Ionic can help you to get there more quickly. Because you can build your one code base into many different forms in the end. You are more flexible and able to target a variety of platforms.
如果您要優(yōu)先考慮在所有首選平臺上為客戶提供解決方案,那么Ionic可以幫助您更快地到達那里 。 因為最后您可以將一個代碼庫構(gòu)建為許多不同的形式。 您更加靈活,可以針對各種平臺。
In the end, every project has a budget and timeline. This means, it’s a business decision based on many variables you can sometimes only estimate upfront. Do your job, outline what’s important and where you want to be. This will give you the first indication of whether to use Ionic or not.
最后,每個項目都有預算和時間表。 這意味著, 這是基于許多變量的業(yè)務決策 ,您有時只能預先估算。 做好您的工作,概述重要的事項以及您想成為的地方。 這將為您提供是否使用離子的第一個指示。
您的團隊成員的技能是什么? (What are your team members’ skills?)
When you have a team of 5 non-developers that are just starting to learn what an Array is, there’s no big difference between picking framework a or b. If you have a team of 5 Angular developers, the likelihood of picking Ionic suddenly increases a lot.
當您有一個由5個非開發(fā)人員組成的團隊開始學習Array是什么時,選擇框架a或b并沒有太大區(qū)別。 如果您有一個由5位Angular開發(fā)人員組成的團隊,那么選擇Ionic的可能性會突然增加很多。
Although you should (of course) always try to use the best tool to deliver the best possible result for your project, it doesn’t mean that this selection makes the most sense or has the highest business value.
盡管您應該(當然)總是嘗試使用最佳工具為您的項目提供最佳結(jié)果,但這并不意味著此選擇最有意義或具有最高業(yè)務價值 。
If you have experienced developers with a lot of C# knowledge, why not try something like Xamarin?
如果您有豐富的C#知識的經(jīng)驗豐富的開發(fā)人員,為什么不嘗試Xamarin之類的東西呢?
If all your team knows React, why not use React Native?
如果您的團隊都知道React,那么為什么不使用React Native ?
As I said in the beginning, there are many great frameworks available. Each with their own unique approach. And if you can benefit from the experience of your developers, you will get started a lot faster. Perhaps also get a better result with something they would have to learn from ground zero.
正如我在開始時所說的,有許多很棒的框架可用。 每個人都有自己獨特的方法。 而且,如果您可以從開發(fā)人員的經(jīng)驗中受益,則可以更快地上手。 也許他們從零基礎(chǔ)學到的東西也可以獲得更好的結(jié)果。
When you have a handful of web developers with basic JavaScript skills, Ionic is the perfect framework to transition to mobile apps.
如果您只有少數(shù)具有基本JavaScript技能的Web開發(fā)人員,那么Ionic是過渡到移動應用程序的理想框架 。
Also, in case you have a development team of 100 native developers, chances are high you should go native. It seems like your business focus is on developing the best possible app for your end-user.
另外,如果您有一個由100個本地開發(fā)人員組成的開發(fā)團隊,那么您應該選擇本地化的可能性很高。 看來您的業(yè)務重點是為最終用戶開發(fā)最好的應用程序。
But when your team is not at that stage (yet?) evaluate your previous skills. Keep in mind the target platforms of your project from the first step because not all of the mentioned framework can deliver the same result across those platforms like Ionic does.
但是,當您的團隊還沒有達到這個階段時(尚未?),請評估您以前的技能。 第一步要記住項目的目標平臺,因為并非所有提到的框架都能像Ionic一樣在這些平臺上提供相同的結(jié)果 。
Combine those 2 elements to see what framework could be a match!
結(jié)合這兩個元素,看看什么樣的框架可以匹配!
離子帶來的好處 (Benefits You Get with Ionic)
Once you decided that Ionic might be the right fit, it’s time to look at the potential upsides of using it.
一旦您確定Ionic可能是合適的選擇,就該考慮使用它的潛在好處了。
程式庫 (Codebase)
As already mentioned, your result is one codebase which you can use to build for multiple platforms. That means the initial development time is faster. Also, further maintenance and updates are easier to ship as it only requires changes in one project.
如前所述,您的結(jié)果是一個可用于多個平臺構(gòu)建的 代碼庫 。 這意味著初始開發(fā)時間更快。 而且,由于只需要在一個項目中進行更改,進一步的維護和更新就更容易發(fā)布。
While this sounds awesome, it’s never going to be 50% (or more) of the development time compared to creating x projects for each separate platform you target. Sometimes you just need to take care of special behaviors so you need to add clauses like:
雖然這聽起來很棒,但是與為目標每個單獨的平臺創(chuàng)建x個項目相比,它永遠不會占開發(fā)時間的50%(或更多)。 有時您只需要注意特殊行為,因此需要添加以下子句:
if (this.plt.is('ios')) { // do ios Stuff}if (this.plt.is('android')) { // do android stuff}Ionic is already doing their best to simplify this process with fa project called Capacitor. This defines one API that will work both on the web and with native SDKs. At the time writing, this it has not yet reached a stable version, but looks very promising for the future.
Ionic已通過名為Capacitor的項目竭盡全力簡化此過程。 這定義了一個既可以在網(wǎng)絡上也可以與本機SDK一起使用的API。 在撰寫本文時,它還沒有達到穩(wěn)定的版本,但是對于未來來說似乎很有希望 。
平臺類 (Platforms)
Because Ionic is betting on the web, Ionic apps can run almost anywhere today. An Ionic 4 project is a web application that gets packaged into the right container for a specific platform.
由于Ionic在網(wǎng)上下注,因此Ionic應用程序幾乎可以在任何地方運行。 Ionic 4項目是一個Web應用程序,被打包到特定平臺的正確容器中。
On the web, this means it can be deployed directly as it is. As a PWA, you need to comment in a snippet and it’s ready. For the native app stores (iOS/Android), Cordova will package your application. Cordova makes the underlying SDKs and device features available. And for desktop, you can use Electron. It is already used by applications like Visual Studio or Slack.
在網(wǎng)絡上,這意味著它可以直接部署。 作為PWA,您需要在摘要中進行注釋,并且準備就緒。 對于本機應用程序商店(iOS / Android), Cordova將打包您的應用程序。 Cordova使基礎(chǔ)SDK和設備功能可用。 對于臺式機,您可以使用Electron 。 它已經(jīng)被Visual Studio或Slack之類的應用程序使用。
UI元素 (UI Elements)
If you want to explain Ionic very (very, very) simply, it’s a great UI library of elements. Especially with the version 4 update, Ionic moves towards a direction where it can be easily added to any project. Its components are now web components created with their own tool Stencil.
如果您想非常(非常非常)地解釋Ionic,那么它是一個很棒的UI元素庫 。 特別是在版本4更新中,Ionic向著可以輕松添加到任何項目的方向發(fā)展。 現(xiàn)在,其組件是使用自己的工具Stencil創(chuàng)建的Web組件。
While Bootstrap was and still is great for the web, having platform-specific components is almost a must-have today if you want your users to enjoy your app.
盡管Bootstrap曾經(jīng)是,現(xiàn)在仍然非常適合Web使用,但要讓用戶喜歡您的應用程序,擁有特定于平臺的組件幾乎是當今必不可少的。
Ever seen an Android-designed iOS App?
曾經(jīng)看過Android設計的iOS應用嗎?
It either never gets through the Apple Submission guidelines check or feels just wrong when used.
它要么永遠無法通過Apple提交準則檢查,要么在使用時感覺不對。
Ionic automatically uses the styling based on the platform where the app is running. While they are already looking good out of the box most of the time, everything can be customized to meet your expectations. It’s not like you have to live with predefined colors or anything. There are standard values to help you get started faster.
Ionic會根據(jù)運行應用程序的平臺自動使用樣式。 盡管他們在大多數(shù)情況下已經(jīng)看起來很不錯,但可以自定義所有內(nèi)容以滿足您的期望。 好像您不必使用預定義的顏色或其他任何東西。 有一些標準值可幫助您更快地入門。
工具與開發(fā)流程 (Tooling & Development Flow)
If your development environment sucks, your productivity decreases. If you have the right tools and feel comfortable with your flow, your productivity will likewise be a lot higher.
如果您的開發(fā)環(huán)境糟透了,您的生產(chǎn)率就會下降。 如果您擁有合適的工具并且對流程感到滿意,您的生產(chǎn)率同樣會更高。
With Ionic 4 you get the power of the Ionic CLI of previous releases. Plus you can also use the Angular CLI without any problems right inside your project!
使用Ionic 4,您可以獲得以前版本的Ionic CLI的功能。 另外,您還可以在項目內(nèi)部直接使用Angular CLI !
This means bootstrapping projects, adding new files, and creating the right structure becomes a lot easier.
這意味著引導項目,添加新文件以及創(chuàng)建正確的結(jié)構(gòu)變得容易得多。
Also, compared to native development, the live reload of your app is something those developers can only dream of.
而且,與本機開發(fā)相比,應用程序的實時重新加載是開發(fā)人員只能夢dream以求的。
Combined with the additional safety of TypeScript and a great editor like Visual Studio Code, developing Ionic apps becomes less a job and more pure fun.
結(jié)合TypeScript的額外安全性和出色的編輯器(如Visual Studio Code) ,開發(fā)Ionic應用程序變得不再是一件容易的事,而是更多的樂趣。
支持與社區(qū) (Support & Community)
While you expect great support and a friendly community from all famous frameworks, it’s not always going to be like you imagine it. Because the main focus of Ionic is still Angular, you can not only get help from fellow Ionites but also benefit from the whole Angular community.
盡管您期望所有著名框架都將提供強大的支持和友好的社區(qū),但這并不總是會像您想象的那樣。 由于Ionic的主要重點仍然是Angular,因此您不僅可以從其他Ionite那里獲得幫助,還可以從整個Angular社區(qū)中受益。
And once more users of other frameworks start to use Ionic, the size of the community will increase more and more over time.
并且,一旦其他框架的更多用戶開始使用Ionic,社區(qū)的規(guī)模將隨著時間的推移而越來越大。
If you are looking for another great Ionic community, you can find a friendly place inside my Ionic Academy.
如果您正在尋找另一個很棒的離子社區(qū),可以在我的離子學院內(nèi)找到一個友好的地方。
Also, looking up something inside documentation can be quite painful. Ionic makes delivering an awesome experience in this area a high priority. Check out there beautiful redesigned Ionic 4 docs to see what I mean. It’s definitely more than you can expect from an open source framework!
此外,在文檔中查找內(nèi)容可能會很痛苦。 Ionic高度重視在此領(lǐng)域提供出色的體驗。 查看那里經(jīng)過重新設計的漂亮的Ionic 4文檔 ,了解我的意思。 絕對比您從開源框架中所期望的要多!
離子專業(yè) (Ionic Pro)
Although Ionic is open source and free, you can add another set of tools by using Ionic Pro. This paid service adds additional functionality like visual App creation with the creator, improved deployment process (live app updates), error monitoring or testing channels.
盡管Ionic是開源和免費的 ,但是您可以使用Ionic Pro添加另一套工具。 這項付費服務??增加了其他功能,例如與創(chuàng)建者一起創(chuàng)建可視化應用程序,改進的部署過程(實時應用程序更新),錯誤監(jiān)控或測試渠道。
While none of these is a must have, it’s an amazing suite of tools that you might want to have if you can afford the price.
雖然這些都不是必須的,但如果您負擔得起的價格,它可能是一套令人驚奇的工具。
For enterprise teams, the benefits will clearly pay off. For smaller companies that take their apps seriously, it’s something they should think about to increase the productivity of their development team.
對于企業(yè)團隊而言,收益將顯而易見。 對于認真對待其應用程序的小型公司,這是他們應該考慮的事情,以提高其開發(fā)團隊的工作效率 。
離子領(lǐng)域內(nèi)的改進領(lǐng)域 (Areas of Improvement within Ionic)
Until now I’ve blown the trumpet quite hard for Ionic. This is because I’ve fallen in love with it over and over again in the last years. But of course there are drawbacks to every framework, and Ionic is no exception.
到目前為止,我一直為Ionic吹小號。 這是因為在過去的幾年中,我一次又一次地愛上它。 但是,當然每個框架都有缺點,而Ionic也不例外。
性能 (Performance)
The biggest concern against cross-platform apps will always be the performance. Yes, Ionic apps run inside a Webview. There are no real native elements. They will always be inside this container and at least one level above real native apps.
跨平臺應用程序最大的擔憂始終是性能。 是的,Ionic應用程序在Webview中運行。 沒有真正的本機元素。 它們將始終位于該容器內(nèi),并且至少比真實本機應用程序高一級。
On the web in general, that’s not an issue, as Ionic apps are a website like everything else.
一般來說,在網(wǎng)絡上這不是問題,因為Ionic應用程序是一個像其他所有網(wǎng)站一樣的網(wǎng)站。
As a native application, this can become a pain point especially if a bridge to a native functionality is the bottleneck that keeps hanging and slows down your app. Again, if your top priority is the best performance ever seen by a mobile application, you might want to go full native.
作為本機應用程序,這可能會成為一個痛點,特別是如果與本機功能的橋梁是不斷懸掛并降低應用程序速度的瓶頸 。 同樣,如果您的頭等大事是移動應用程序所見過的最佳性能,則您可能希望使用本機。
Also, the usage of JavaScript is super easy, but at the same time there are many areas where inexperienced developers can go wrong which results in slow apps. Josh Morony has a great article on why the code, not the framework, might be the real problem with the performance.
同樣,JavaScript的使用非常容易,但是同時在很多地方,經(jīng)驗不足的開發(fā)人員可能會出錯,從而導致應用程序運行緩慢。 Josh Morony撰寫了一篇很棒的文章,介紹為什么代碼而不是框架可能是性能的真正問題。
You can definitely build super performant apps with Ionic. It’s just easier to mess up with performance than it is with a framework that’s closer to native code (or completely native).
您絕對可以使用Ionic構(gòu)建性能卓越的應用程序。 與更接近本機代碼(或完全本機)的框架相比,搞亂性能要容易得多。
重裝 (Reload)
The cool reload was a benefit just some paragraphs ago and now it’s a drawback?
酷重裝只是前幾段的好處, 而現(xiàn)在是缺點嗎?
To understand it, you need to learn the difference between live reload and hot reload.
要了解它,您需要了解實時重新加載和熱重新加載之間的區(qū)別。
The first is used with Ionic and means your app is updated once you save your code. The second means your app is updated once you save the code in the exact same state it was before.
第一個與Ionic一起使用,意味著您保存代碼后便會更新您的應用程序。 第二個意思是,一旦您將代碼保存為與以前完全相同的狀態(tài),便會更新您的應用程序。
That’s a difference, especially if you are testing your app on a mobile device or simulator where the loading times can really slow down your process.
這是不同的,特別是如果您正在移動設備或模擬器上測試應用程序,而加載時間確實會減慢您的過程。
Of course, this is not a showstopper, but something developers would highly benefit from in the future.
當然,這不是最重要的事情,但是開發(fā)人員將來會從中受益匪淺。
本機SDK (Native SDKs)
If one of your platforms is a native app, odds are high that you want to use device features or the underlying SDK. While this is not a problem itself through Cordova, it can be painful sometimes.
如果您的平臺之一是本機應用程序,則要使用設備功能或基礎(chǔ)SDK的可能性很高。 盡管這不是科爾多瓦本身的問題,但有時可能會很痛苦。
There are Cordova plugins for almost everything you can imagine. Once you need a very unique feature and discover that the only plugin for this was updated 3 years ago you know you gonna have a hard time.
有Cordova插件,幾乎可以想象得到的所有內(nèi)容。 一旦您需要一個非常獨特的功能,并且發(fā)現(xiàn)唯一的插件已在3年前進行了更新, 您便會遇到困難 。
This doesn’t mean it’s the end of the road. At this point, you might have to touch native code that you don’t comfortable with. With Cordova means we can’t access native functionality directly.
這并不意味著這是路的盡頭。 在這一點上,您可能必須觸摸您不滿意的本機代碼。 使用Cordova意味著我們無法直接訪問本機功能 。
With other frameworks like NativeScript, it’s a lot easier to work directly with the native SDKs. For Ionic, you currently still need a bridge between.
使用NativeScript等其他框架,直接使用本機SDK會容易得多。 對于Ionic,您目前仍需要兩者之間的橋梁。
Maybe this pain point will be removed or decreased once Capacitor is ready for prime time. Until then you must live with what you get or become active by developing your own plugin.
一旦電容器準備就緒,也許可以消除或減輕這種疼痛點。 在此之前,您必須通過開發(fā)自己的插件來體驗自己所獲得或變得活躍的事物。
那AirBnB和Facebook新聞呢? (And what about the AirBnB and Facebook News?)
You might have heard the news of AirBnB sunsetting their work with React Native. You may have heard older news from the Zuck that betting on HTML5 was the biggest mistake of Facebook.
您可能已經(jīng)聽說過AirBnB將其與React Native一起工作終止的消息。 您可能已經(jīng)聽過Zuck的較早消息,認為押注HTML5是Facebook的最大錯誤 。
These articles create a lot of doubt against the general cross-platform approach.
這些文章對通用的跨平臺方法提出了很多疑問。
Is developing cross-platform still valuable?
開發(fā)跨平臺是否仍然有價值?
The short answer is: Yes, more than ever.
簡短的答案是: 是的,比以往任何時候都多 。
To understand how those companies came to these decisions you would have to truly understand their business and their situation. AirBnB has more than 100 native developers. How many does your company have?
要了解這些公司如何做出這些決定,您必須真正了解他們的業(yè)務和狀況。 AirBnB有100多個本地開發(fā)人員。 您的公司有幾個?
If I had a team of 100 experienced natives devs, I guess the last thing I would do is tell them to stop all native work and go for Ionic now.
如果我有一個由100個經(jīng)驗豐富的本地開發(fā)人員組成的團隊,我想我要做的最后一件事就是告訴他們停止所有本地工作,現(xiàn)在就去Ionic。
This means you shouldn’t be scared by big headlines of big companies.
這意味著您不應該被大公司的頭條新聞嚇到 。
The decision for or against Ionic or any framework is based on many factors. Just because one company stops using a tool it doesn’t mean the tool sucks. It was just not the right fit for their needs.
是否支持Ionic或任何框架的決定基于許多因素。 僅僅因為一家公司停止使用工具,并不意味著該工具很爛。 這只是不適合他們的需求。
Ionic could be right for your next project or not. Don’t let that decision be based on big headlines, but rather on your own evaluations.
Ionic可能適合您的下一個項目。 不要讓這個決定基于頭條新聞,而要根據(jù)您自己的評估。
結(jié)論 (Conclusion)
In this article, we went through many steps to see whether Ionic might be the right fit for your next project or cross-platform app. With the closer Angular integration with Ionic 4, it’s a great choice for any web and mobile project. But it always depends on your business case, priorities, and factors you value!
在本文中,我們經(jīng)歷了許多步驟,以了解Ionic是否適合您的下一個項目或跨平臺應用程序。 通過與Ionic 4的更緊密的Angular集成,它是任何Web和移動項目的絕佳選擇。 但這始終取決于您的業(yè)務案例,優(yōu)先級和您重視的因素!
Don’t fall back into preconceptions you have built and fostered over the years. Try it out for yourself.
不要回落到您多年來建立和培養(yǎng)的成見中。 自己試試吧。
If you want to learn how to build great apps with Ionic, check out the Ionic Academy!
如果您想學習如何使用Ionic構(gòu)建出色的應用程序,請訪問Ionic Academy !
Originally published at devdactic.com on August 21, 2018.
最初于2018年8月21日發(fā)布在devdactic.com 。
翻譯自: https://www.freecodecamp.org/news/is-ionic-the-right-choice-for-my-project-f15774303956/
總結(jié)
以上是生活随笔為你收集整理的如何确定Ionic是否适合您的项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: javascript 分号_让我们谈谈J
 - 下一篇: 梦到自己开车把人撞死了什么预兆