前言
如果你希望使用 JavaScript / TypeScript 直接写 iOS、Android、Web、甚至 Vision Pro 应用,并获得接近原生的性能体验,那么 NativeScript 可能是你一直在寻找的解决方案。
在过去的跨端框架中,Ionic/Cordova 依赖 WebView、uni-app 依赖厂商 Runtime、React Native 使用 JS Bridge,而 NativeScript 直接让 JS 运行在 JavaScriptCore / V8 上,通过强类型机制直达 原生平台 API——没有 WebView、没有虚拟控件、没有中间层。
它已经发展了 10 年,并成为 OpenJS Foundation 成员项目,再次被全球开发者关注。
什么是 NativeScript?
NativeScript 是一个能够让 JavaScript 运行时代码直接访问平台 API 的跨平台框架。
换句话说:
你可以在 JavaScript / TypeScript 中像写原生代码一样调用 iOS、Android、VisionOS 的原生能力。
它支持的运行时环境包括:
- @nativescript/android
- @nativescript/ios
- @nativescript/visionos
为了简化跨平台开发,它提供了 @nativescript/core,封装大量常见场景的跨平台能力。
NativeScript 可以做什么?
NativeScript 的典型应用场景包括:
- 统一代码库,构建 Web、iOS、Android、Vision Pro(跨平台应用)
- 使用 JavaScript / TypeScript 构建真正的原生 App
- 强化现有 JavaScript 项目的原生扩展能力
- 构建 Android TV、Android Watch 等设备应用
- watchOS 开发
- 不配置平台环境,直接在浏览器中试验原生 API(便于学习/探索)
- 学习原生平台能力,用 JS 逐步理解 Objective-C / Swift / Kotlin 背后的运行机制
为什么选择 NativeScript?
1. JavaScript 技能复用
无需学习 Swift、Objective-C、Kotlin,也能构建原生应用。
2. 原生性能与体验
没有 WebView,没有 H5 模式,UI 组件都是原生控件。
3. 与原生开发者协作更轻松
JavaScript 和原生 API 之间是“直连”的,不用写 Bridge。
4. 支持更多平台
包括 VisionOS、Android TV、watchOS 等 niche 设备。
5. 开源 + OpenJS Foundation 背书
社区更稳定、生态更健康。
可选框架生态:Vue、React、Angular 全部能用
NativeScript 允许你选择熟悉的前端框架:
| 框架 | 包名 |
|---|---|
| TypeScript / JS(XML + JS 类) | 内建 |
| Angular | @nativescript/angular |
| Vue | nativescript-vue |
| React | react-nativescript |
| Solid | @nativescript-community/solid-js |
| Svelte | @nativescript-community/svelte-native |
NativeScript-Vue:Vue 的自定义渲染器 + NativeScript 原生引擎
NativeScript-Vue 是 Vue 的原生渲染版本,不依赖 WebView,模板中的标签会被渲染成真正的原生 UI 组件:
<template>→ iOSUILabel/ AndroidTextView- JS 在 V8 / JavaScriptCore 直接执行
- 支持 npm、CocoaPods、Gradle 全部原生依赖
- 性能可与 React Native 比肩,但保留完整 Vue 开发体验
Vue 官方作者 尤雨溪曾点赞 NS-Vue 3 的发布,意味着它已达到成熟可用的程度。
对 Vue 开发者来说,NativeScript-Vue 的核心吸引力是:
终于可以用 Vue 3 写真正的原生 App 了。
客观评价:为什么 NativeScript 在国内不火?
结合社区讨论,总结如下——优点很强,但落地存在水土不服问题。
👍 优势
- 真原生性能
- Vue/React/Angular 全部能用
- 原生 API 直达,不用桥接层
- 多端覆盖更广(VisionOS、WatchOS)
👎 国内的核心痛点(致命)
❌ 不支持微信小程序、抖音、小红书等超级平台生态
这是国内最大的短板。
老板一句:“要支持微信小程序 / 抖音小程序”,NativeScript 就直接出局。
uni-app / Taro / Remax 等的最大价值就是补齐这类平台。
❌ 国内原生能力依赖巨大
如登录、支付、地图、分享、推送,都依赖平台 SDK。
NativeScript 虽然能写原生插件,但:
- 需要开发者有 iOS/Android 原生能力
- 国内生态并没有现成封装
相比之下:
- uni-app 有更完整的小程序能力封装
- React Native 有更庞大的国内插件库
- Flutter 在国内有大量 SDK 插件支持
❌ 社区和生态偏海外,文档中文不够友好
导致企业使用成本上升。
❌ 同类竞争激烈
过去十年国内流行的跨端框架太多:
- Cordova
- Ionic
- Weex
- RN
- Flutter
- uni-app(含 nvue / uvue)
- MAUI / Taro 等
NativeScript 没有形成足够竞争优势自然而然就弱化了存在感。
什么时候应该选择 NativeScript?
适合的场景:
✔ 原生能力优先、跨平台其次的项目
✔ 有原生开发能力的团队(Swift/Kotlin)
✔ 想构建 VisionOS / WatchOS / TVApp
✔ 想用 Vue / React 写真正的原生控件
✔ 对渲染性能有极高要求
✔ 海外方向 App 项目(无需支持小程序)
不适合的场景:
✘ 需要微信/抖音/小红书小程序生态
✘ 团队完全没有原生开发技能
✘ 重依赖国内 SDK(如微信支付)
✘ 需要快速上线全端统一方案
✘ 目标是中国大陆市场 + 高迭代需求
结论:NativeScript 很强,但国内生态限制了它的发挥
NativeScript 是一个技术上非常优秀的跨端框架:
- 真原生性能
- Vue/React/Angular 全支持
- 拓展性极强
- 能覆盖 VisionOS、WatchOS 等前沿平台
但在中国大陆:
- 小程序生态压倒一切
- SDK 封装缺乏
- 原生能力依赖大
- 社区中文资源不足
导致它“强而未广”。
未来趋势:NativeScript 有潜力,但更适合海外市场
如果你面向国际市场,NativeScript-Vue 可能是 Vue 生态最强的原生解决方案。
如果你的目标是国内平台,结论更简单:
小程序场景 —— uni-app / Taro
复杂原生 —— RN / Flutter / 原生
NativeScript —— 更像是“有实力但不适合国情”的技术
文章评论