1.native 的含义
在移动应用开发的上下文中,"native" 通常指代原生应用或原生开发。原生应用是指使用特定平台(如iOS或Android)的原生编程语言和工具集进行开发的应用程序。这意味着使用针对特定平台的编程语言(如Objective-C或Swift用于iOS,Java或Kotlin用于Android)编写应用程序代码,并使用平台提供的开发工具和 API 来构建应用。
相对于原生应用,还有一些其他类型的移动应用开发方式,如混合应用和Web应用。混合应用使用Web技术(HTML、CSS和JavaScript)来构建应用,然后通过容器应用(如Cordova或React Native)将其封装为原生应用。而Web应用则是基于Web技术构建的应用,通过浏览器访问。
所以,一般来说,在移动端上,当我们提到 "native" 时,我们指的是使用特定平台的原生编程语言和工具开发的应用程序,而不是混合应用或Web应用。
2.前端开发常用的库
LayaAir是一款开源的HTML5游戏引擎,其中包括了 LayaAir引擎、IDE、文档等一系列开发工具和资源。LayaAir引擎支持2D和3D的开发,并提供了丰富的功能和工具来帮助开发者创建高性能、跨平台的游戏和应用程序。
p2.min.js
是一个 JavaScript 库文件,通常与物理引擎 P2.js 相关。P2.js 是一款用于模拟和处理2D物理效果的开源 JavaScript 物理引擎。它提供了一系列用于模拟刚体、碰撞检测、力和约束等物理特性的类和方法。
raven-js
是一个用于 JavaScript 的开源错误监控工具,用于捕获和报告前端应用程序中的错误和异常。它是 Sentry 提供的一个 JavaScript 客户端库,用于集成到应用程序中,以便实时监控和跟踪应用程序的错误。
videojs-contrib-hls.js
是一个 JavaScript 库,用于在 Video.js 播放器中实现 HTTP Live Streaming (HLS) 的支持。它是 Video.js 社区开发的一个插件,通过集成 Hls.js 库,为 Video.js 播放器添加了对 HLS 格式视频的播放能力。
HLS(HTTP Live Streaming)是一种流媒体传输协议,用于在网络上实时传输和播放音频和视频内容。它是由苹果公司开发并广泛应用于 iOS 和 macOS 平台上的流媒体服务。
YPlayer
可能是一个自定义的播放器库或插件,用于在网页中嵌入和管理媒体播放器。这个库可能提供了一系列功能和接口,用于加载和播放音频或视频文件,控制播放进度、音量和其他播放器设置,以及处理各种媒体相关事件等。
有许多流行的播放器库可用于在网页或移动应用中实现音频和视频播放功能。以下是一些常用的播放器库的例子:
Video.js: Video.js 是一个灵活且可自定义的 HTML5 视频播放器库,它提供了跨浏览器和跨设备的视频播放支持,并具有丰富的插件生态系统。
MathQuill 是一个用于在网页中创建数学表达式和数学输入的开源 JavaScript 库。它提供了一个用户友好的界面,使用户能够轻松输入和编辑数学符号、公式和方程式。
3.vue-router中的 meta 属性
在 Vue Router 中,meta
是一个特殊的字段,用于定义路由的元数据(metadata)。元数据是与路由相关的附加信息,它可以包含任意的自定义属性,用于描述路由的特性、权限要求、缓存设置等。
示例:
{
path: '/meta/question',
name: 'question',
component: () => import('@/views/chinese/Question'),
meta: {
permission: true,
allowBack: false,
noCache: true
}
}
使用 meta:
在代码中,可以通过以下方式访问路由的元数据:
// 获取当前路由对象
const currentRoute = this.$route;
//vue3 中为 const currentRoute = useRoute(); 即可
// 获取当前路由的 meta 数据
const meta = currentRoute.meta;
// 访问 meta 中的具体属性
const permission = meta.permission;
const allowBack = meta.allowBack;
const noCache = meta.noCache;
你可以在需要的地方使用这些元数据。例如,在路由守卫中,你可以根据 permission
来判断用户是否有权限访问该路由:
router.beforeEach((to, from, next) => {
const meta = to.meta;
const permission = meta.permission;
if (permission) {
// 需要权限验证
// 进行权限判断逻辑
if (hasPermission()) {
// 有权限,继续导航到目标路由
next();
} else {
// 没有权限,重定向到其他页面或显示错误提示
next('/unauthorized');
}
} else {
// 不需要权限验证,直接导航到目标路由
next();
}
});
4.使用 studio 3T 连接权限数据库
这个 test 数据库是我们在宝塔中创建的,我们这样进行连接:

