尤雨溪亲自点赞!用 Vue 3 写原生 App,这个框架终于来了!

0 阅读4分钟

告别 WebView 的卡顿,像写 Vue 3 一样写真正的原生应用 这一次,你的 .vue 文件可以直接跑出 Swift/Kotlin 的性能!

大家好,我是大鱼。

在移动端开发的世界里,Vue 开发者似乎总是“低人一等”。

React 有 React Native,Google 有 Flutter,而 Vue 生态长期缺少一个能与之并肩的“真·原生”跨平台方案。

直到 NativeScript-Vue 3 的出现,并被 Vue 之父尤雨溪亲自点赞——这一切,终于迎来了改变。


🧐 它是什么?为什么尤大亲自站台?

NativeScript-Vue 3 是一个基于 Vue 3 核心的跨平台原生移动开发框架

它的核心理念很简单:没有 WebView,没有 DOM——你写的 <template> 直接编译成 iOS 的 UIKit 和 Android 的 AppCompat 原生组件

一句话总结:Vue 的自定义渲染器 + NativeScript 原生引擎


📱 小程序支持?先说清楚!

这是很多读者最关心的问题,我直接把结论放在前面:

❌ NativeScript-Vue 3 不支持微信小程序、支付宝小程序、抖音小程序等任何小程序平台。

它的定位非常纯粹:只做 iOS 和 Android 原生 App,一套代码,两端运行。

为什么不做小程序?

这是框架的设计哲学决定的:

技术特性NativeScript-Vueuni-app / Taro
渲染层原生 UIKit/AppCompatWebView / 小程序专用渲染
运行环境V8 / JavaScriptCore小程序运行时 / WebView
核心目标原生级别性能多端适配能力

NativeScript 的底层原理是直接调用 iOS/Android 的原生 API,而小程序的运行环境是完全不同的生态,两者不兼容。

那我想要小程序怎么办?

如果你需要覆盖 小程序 + App + H5,目前主流的选择仍然是 uni-appTaro

但如果你满足以下条件,NativeScript-Vue 3 会是更好的选择:

  • ✅ 只做 iOS / Android,不需要小程序
  • ✅ 追求接近原生的性能(重动画、重交互、长列表流畅)
  • ✅ 团队熟悉 Vue 3 生态,不想学 Swift/Kotlin
  • ✅ 需要直接调用硬件能力(蓝牙、NFC、传感器等)

一句话总结:想多端通吃选 uni-app,想做精品原生 App 选 NativeScript-Vue。


💔 为什么是时候说再见了?

很多朋友还在用 uni-app 或 Hybrid 方案,但其中的痛点只有开发者自己知道:

维度传统混合开发NativeScript-Vue 3
渲染机制WebView 渲染,启动慢、长列表卡顿原生渲染,直接调用系统 UI 组件
原生能力需要各种桥接、renderjs,维护成本高直接调用原生 API 和 SDK,零延迟
开发体验厂商锁仓,Vite/Pinia 支持滞后Vite + TS + Vue 3 全家桶,现代前端体验
包体积自带 WebView 内核,体积臃肿纯原生二进制包,平均小 30%

有了它,你不仅获得了 React Native 同级别的性能,还保留了 Vue 3 极致的开发体验。


✨ 三大核心特性:Vueer 的“王炸”

1. 纯粹的 Vue 3 开发体验

完全支持 <script setup>、Composition API、响应式系统。你甚至可以直接使用 Pinia 作为状态管理,零改动接入!

<script setup>
import { ref } from 'vue';

const count = ref(0);
const message = ref('Hello Native!');
</script>

<template>
  <Page>
    <ActionBar title="我的原生App" />
    <StackLayout class="p-4">
      <Label :text="message" class="text-2xl" />
      <Button @tap="count++" :text="`点击次数:${count}`" />
    </StackLayout>
  </Page>
</template>

2. 超强“外挂”:直接调用原生 API

这是它最硬核的地方。它没有桥接层,JS 和原生运行在同一线程,同步直接调用

这意味着你可以直接在 Vue 组件里写 Android 的 Intent 跳转或 iOS 的 CBCentralManager

// 直接在组件中调用原生设备信息
import { device } from '@nativescript/core';

console.log(`系统版本: ${device.osVersion}`);
console.log(`设备型号: ${device.model}`);

3. Vite 加持的极速热重载

终于,移动端开发也能享受 Web 端的毫秒级 HMR了!保存代码,模拟器直接更新,无需重新编译。


🛠️ 5 分钟极速上手

第一步:安装 NativeScript CLI

npm install -g @nativescript/cli

第二步:创建 Vue 3 项目

ns create my-vue-app --template @nativescript/vue-template

第三步:运行起来!

# 连接手机或打开模拟器
ns run android   # 或 ns run ios

你会发现,你的第一个纯原生 Vue App 就跑起来了!🚀


⚠️ 避坑指南(必看!)

虽然很香,但由于架构不同,Vue 生态的部分库是无法使用的

插件是否可用说明
Pinia零改动,直接使用
vue-i18n实测正常
VueUse⚠️仅无 DOM 的 Utilities 可用
Vue Router官方推荐用 NativeScript 帧导航 $navigateTo
Vuetify / Element Plus依赖 CSS & DOM,无法渲染

💡 检测小技巧:安装包后,grep -r "document\|window" node_modules/xxx,没输出说明大概率安全!


🗣️ 真实体验:一个月的开发经历告诉你

有开发者用 NativeScript-Vue 3 花了一个月时间,做了一个完整的日程管理+AI助手 App(影时间),他的真实感受是:

好的地方:

  • 用 Vue 写原生 UI,Composition API 0 学习成本
  • 同步调用原生 API 很爽,没有延迟
  • 包体积小,启动快

不太爽的地方:

  • 社区真的小,问题搜不到,文档写得比较简略
  • 调试有时候头疼,原生堆栈错误要自己定位
  • JS 在主线程运行,耗时计算会阻塞 UI(适合中小项目)

🎯 写在最后

Flutter 很强,RN 也很成熟,但如果你是一个 Vue 3 的忠实拥趸,NativeScript-Vue 3 是你涉足原生应用开发最优雅、最低成本的路径。

它让 Vue 语法第一次 完整、无损、高性能 地跑在 iOS & Android 上。

但请理性选择:

  • 需要小程序?👉 选 uni-app 或者 taro
  • 做精品原生 App?👉 NativeScript-Vue 值得一试