Introduction:
From the internal testing of small programs to now, various companies have an increasing demand for the development of small program business. Developers find it difficult to use native to develop small programs, especially when it comes to projects with more complex business. If they still use native development, it will become difficult to manage and iterate.
(Learning video sharing:Introduction to Programming)
Problems with using native development:
The applet itself does not support commonly used The css precompiler
does not support advanced syntax above ES7, such as async await and other features;
does not support engineering, such as environment , variable and other management
Lack of unified request interception request
Lack of unified local cache read management
Problems that can be solved by using the framework:
Support css precompiler
Support ES7 or above syntax
Support engineering
Most frameworks support multiple terminals, and a set of codes can be reused on multiple terminals
Framework introduction and comparison
Wepy
WePY (pronounced: /'wepi/) is a framework that allows small programs to support component development. Through pre-compilation, developers can choose their favorite development style. Develop small programs. The detailed optimization of the framework, the introduction of Promise, and Async Functions are all designed to make developing small program projects easier and more efficient
Mpvue
mpvue Yes A front-end framework for developing small programs using Vue.js. The framework is based on the core of Vue.js. mpvue modifies the runtime and compiler implementations of Vue.js so that it can run in a mini program environment, thus introducing a complete Vue.js development experience for mini program development.
Main features
Thorough component development capabilities: improve code reusability
Complete Vue.js development Experience
Convenient Vuex data management solution: Convenient to build complex applications
Fast webpack construction mechanism: custom build strategy, hotReload during development phase
Support the use of npm external dependencies
Use the Vue.js command line tool vue-cli to quickly initialize the project
The ability to convert H5 code into small program target code
Taro
Taro is a multi-terminal development solution that follows React syntax specifications
Uni-app
uni-app is a front-end framework that uses Vue.js to develop cross-platform applications.
Chamelon
Chameleon/kəˈmiːlɪən/, abbreviated CML, Chinese name Cameron; Chinese meaning chameleon, which means that like a chameleon, it can adapt to different environments A comprehensive cross-end solution.
Main features
Directory structure: Provides a standardized project structure, suitable for the development of enterprise-level large-scale applications.
View layer: The view layer is written by CML and CMSS. The core is a standard responsive data-driven view update.
Logic layer: The logic layer is written in javascript. The logic layer will automatically update the view after processing the data and provide event response methods for the view layer.
Polymorphic protocol: Provides a solution that unifies the underlying components and interfaces of each end across terminals.
Specification verification: In order to improve development efficiency and code maintainability, comprehensive code specifications and verification are provided.
Frame comparison
The number of stars was recorded on 2019-09-17
Framework advantages and disadvantages analysis
wepy
Advantages: The framework provided by the WeChat team has high support for WeChat mini programs, can be used for engineering development projects, components and related documents are rich in content, and forums and communication communities are active
Disadvantages: only supported The WeChat applet supports a single client. The framework itself is compiled statically. Serious bugs may occur during dynamic repeats. Grammatical parsing errors sometimes occur. Error handling is relatively simple.
mpvue
Advantages: The earliest multi-terminal framework in open source time. There are many related issues and examples on the Internet. It is suitable for engineering and component development projects.
Disadvantages: The development team basically no longer maintains the framework, and the number of users is getting smaller and smaller. And the various problems existing in the framework itself have not been solved after a long period of iteration
taro
Advantages: The support side has rich capabilities, the development team has strong maintenance efforts, and the forum and official problem solving speed is fast , itself developed based on the WeChat applet API, the WeChat applet has strong support capabilities
Disadvantages: It is a static compilation of files, which will cause problems in the conversion of complex codes. Comparative end-compatibility capabilities for H5 and mobile terminals Bad
uni-app
Advantages: The development team mainly promotes the framework, forums and communication communities are very active, the compatibility of the terminal is extremely strong, and there are writing specifications for specific IDEs to be compatible with the framework code
Disadvantages: Some codes are not open source, official problem feedback The speed is not timely, and the editor binding
chameleon
Advantages: complete planning, unified polymorphic protocol, progressive cross-terminal, provides basic development scaffolding command tools, and helper developers can start from Efficiently complete business development through the entire process of development, joint debugging, testing, and launch.
Disadvantages: short open source time, less relevant information and problem solutions, and terminal compatibility needs to be improved
Selection analysis
There are many existing mini program frameworks. During project development, the selection should be based on the actual situation of the business and the project itself
Compatible with WeChat mini program
If It is only compatible with WeChat mini programs, and you can use wepy, taro, or chameleon. Because the APIs of these frameworks are based on WeChat mini programs, the compatibility with WeChat mini programs is basically the same as native ones. Vue developers can choose wepy, Chameleon and react-based developers can choose taro. Of course, for easy development, developers can use glup to do engineering and develop natively. However, although the framework itself increases the size of the package, the framework will encapsulate performance optimization points on a native basis, such as repeated rendering of setData, etc. .
The reason for not choosing mpvue is because the development team of mpvue is no longer maintaining it, and mpvue also has some unresolved problems in the complex business of being compatible with WeChat mini programs.
There is only one reason not to choose uni-app, I don’t like to use HBuildX
Compatible with multiple terminals
If you want to be compatible with multiple terminals, you can choose taro according to the requirements of compatible terminal capabilities Or chameleon. Although chameleon has been open source for a short time, the design concept of unifying polymorphic protocols is really good. Taro is a project promoted by Ou-convex Lab. During the use process, you can find that the feedback from the forum and the recovery speed of the communication group are still very timely. Using taro can be very compatible with WeChat mini programs. If you want to be compatible with other terminals, you need to add the code according to the code. Special processing on the end
Summary
Mini program framework selection, but whatever framework you choose will eventually be compiled into code that can be recognized by the mini program and run on the WeChat client. Choose the mini program according to business needs. The framework needs to understand the native capabilities of mini programs. Finally, I have to complain about the roughness of WeChat development documentation. Many key points are not described in detail.
Related recommendations:Mini Program Development Tutorial
The above is the detailed content of How to choose a mini program framework. For more information, please follow other related articles on the PHP Chinese website!