扫一扫分享
现在开发移动应用有很多选择。如果你熟悉vue.js,又想要开发真正的原生应用,那么NativeScript-Vue值得了解。
NativeScript-Vue是一个开源框架,它把Vue.js和NativeScript结合在一起。用这个框架,你可以使用Vue.js的语法来开发真正的iOS和Android原生应用。
这里有个重要区别:NativeScript-Vue应用不是在网页视图里运行的。它直接把Vue组件编译成原生界面元素。在iOS上,按钮变成UIButton;在Android上,变成android.widget.Button。用户看到的是真正的原生应用,不是网页包装的应用。
真正的原生体验
应用性能接近原生开发,不受网页视图的性能限制。滑动流畅,响应快速,用户体验更好。
一套代码,多端运行
写一次代码,可以同时生成iOS和Android应用。节省开发时间,维护也更方便。
直接调用原生功能
可以直接使用手机的原生功能,比如摄像头、GPS、文件系统等,不需要通过中间层。
熟悉的开发方式
如果你会用Vue.js,就能很快上手。可以使用Vue的组件、数据绑定等特性。
和其他方案对比一下:
和基于网页视图的方案比较
像Capacitor这样的方案,应用实际上是在网页视图里运行的。性能受限于网页视图,而NativeScript-Vue直接使用原生组件,性能更好。
和react Native比较
如果你已经熟悉Vue.js,学习NativeScript-Vue比学习React Native更容易。不需要学习新的语法概念。
和Flutter比较
Flutter使用Dart语言,需要学习新语言。NativeScript-Vue使用JavaScript/TypeScript,对前端开发者更友好。
NativeScript-Vue特别适合这些情况:
需要同时开发iOS和Android应用
对应用性能要求比较高
需要直接使用手机硬件功能
团队熟悉Vue.js技术栈
需要快速开发原型
环境准备
在开始之前,需要安装一些工具:
安装步骤
安装NativeScript命令行工具:
npm install -g nativescript检查环境是否配置正确:
ns doctor这个命令会检查所有需要的依赖是否安装,并提示缺少什么。
创建新项目:
ns create myApp --template @nativescript-vue/template-blank-vue3@latest如果想用Vue 2,可以使用:
tns create my-app --template nativescript-vue-template运行应用:
cd myApp
ns run ios或者
ns run android项目结构
新创建的项目通常包含这些文件:
my-nativescript-vue-app/
├── app/
│   ├── App.vue
│   ├── main.js
│   ├── components/
│   │   └── hello-world.vue
│   └── App_Resources/
│       ├── Android/
│       └── iOS/
├── package.json
└── webpack.config.jsApp_Resources文件夹包含平台特定的资源文件
main.js是应用启动文件
components文件夹存放Vue组件
理解组件写法
在NativeScript-Vue中,不使用普通的html标签,而是用NativeScript提供的UI组件。看个简单例子:
<template>
  <Page>
    <ActionBar title="我的应用" />
    <StackLayout>
      <Label :text="message" />
      <Button text="点击试试" @tap="handleTap" />
    </StackLayout>
  </Page>
</template>
<script>
export default {
  data() {
    return {
      message: '欢迎使用NativeScript-Vue!'
    }
  },
  methods: {
    handleTap() {
      this.message = '按钮被点击了!'
    }
  }
}
</script><Page>:页面容器,每个页面都需要
<ActionBar>:顶部导航栏
<StackLayout>:布局容器,子元素垂直或水平排列
<Label>:显示文本
<Button>:按钮
<TextField>:单行文本输入
<TextView>:多行文本输入
<Image>:显示图片
<ListView>:列表显示
NativeScript-Vue有自己的布局方式,不是用css。主要布局容器有:
栈布局(StackLayout)
子元素按顺序排列,可以是垂直或水平方向:
<StackLayout orientation="vertical">
  <Label text="第一个元素" />
  <Label text="第二个元素" />
  <Label text="第三个元素" />
</StackLayout>网格布局(GridLayout)
像表格一样排列元素:
<GridLayout rows="*, *" columns="*, *">
  <Label text="第一行第一列" row="0" col="0" />
  <Label text="第一行第二列" row="0" col="1" />
  <Label text="第二行第一列" row="1" col="0" />
  <Label text="第二行第二列" row="1" col="1" />
</GridLayout>弹性盒布局(FlexboxLayout)
类似CSS的Flexbox:
<FlexboxLayout flexDirection="row" justifyContent="space-between">
  <Label text左边的文本" />
  <Label text="右边的文本" />
</FlexboxLayout>处理用户交互
NativeScript-Vue使用特殊的事件名,比如:
@tap:点击事件
@longPress:长按事件
@swipe:滑动手势
<Button text="点击我" @tap="onButtonTap" />访问原生功能
可以直接在Vue方法里调用原生api:
<script>
import { isAndroid, isIOS } from '@nativescript/core'
export default {
  methods: {
    showPlatform() {
      if (isAndroid) {
        console.log('这是Android应用')
      } else if (isIOS) {
        console.log('这是iOS应用')
      }
    }
  }
}
</script>样式设置
虽然不能用CSS,但可以用style属性或者CSS的子集:
<Label text="带样式的文本" />对于想要学习NativeScript-Vue的开发者,建议:
先熟悉Vue.js基础知识
了解基本的移动应用UI设计模式
从简单项目开始,逐步尝试复杂功能
多查阅官方文档和示例
加入社区,和其他开发者交流经验
NativeScript-Vue为Vue.js开发者打开了原生移动应用开发的大门。它平衡了开发效率和应用性能,是一个很实用的选择。
虽然需要学习新的布局系统和组件,但如果你已经熟悉Vue.js,上手会很快。重要的是,你可以用已有的JavaScript技能来开发高质量的原生应用,不需要学习Java、Swift等新语言。
无论你是要开发个人项目,还是企业级应用,NativeScript-Vue都值得尝试。它让移动应用开发对前端开发者更加友好,降低了入门门槛。
仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!
手机预览