Framework7 包结构

Framework7 核心库包包含以下导出

framework7/
    components/
        accordion/
            accordion-ios.less
            accordion-md.less
            accordion-rtl.css
            accordion-vars.less
            accordion.css
            accordion.d.ts
            accordion.js
            accordion.less
        ...
    less/
    modules/
    framework7-bundle-rtl.css
    framework7-bundle-rtl.min.css
    framework7-bundle.css
    framework7-bundle.esm.js
    framework7-bundle.js
    framework7-bundle.less
    framework7-bundle.min.css
    framework7-bundle.min.js
    framework7-lite-bundle.esm.js
    framework7-lite.esm.js
    framework7-rtl.css
    framework7-rtl.min.css
    framework7-types.d.ts
    framework7.css
    framework7.d.ts
    framework7.esm.js
    framework7.js
    framework7.less
    framework7.min.css
    framework7.min.js

精简版

Framework7 "Lite" 版本(文件名包含 -lite 后缀)不包含 Framework7 组件(路由组件)功能、仪表盘、饼图和面积图组件的核心 API。它设计用于 Framework7-Vue/React/Svelte 库,在这些库中您可以使用 Vue/React/Svelte 组件来代替。

Lite 版本仅适用于 ESM 导入。

样式

主要的 Framework7 样式位于根软件包文件夹中

脚本 (UMD)

根文件夹中有所谓的 UMD JavaScript 文件,旨在直接在浏览器中使用(例如,使用 <script src="...">

Lite 版本不提供 UMD 格式。

组件

所有组件都位于 components/ 文件夹中,需要与核心(非捆绑)版本一起使用。您可以在延迟模块部分了解更多关于如何使用它们的信息。

ES 模块

此功能目前可在 Vite、Webpack 和 Rollup 等打包器中使用

Framework7 也可以作为 ES-next 模块导入

import Framework7 from 'framework7';

Framework7 具有模块化结构,并且默认情况下,它只导出带有核心组件的核心 Framework7

如果您需要额外的组件,则必须另外包含它们

// Import core framework
import Framework7 from 'framework7';

// Import additional components
import Searchbar from 'framework7/components/searchbar/';
import Calendar from 'framework7/components/calendar/';
import Popup from 'framework7/components/popup/';

// Import components styles
import 'framework7/components/searchbar/css';
import 'framework7/components/calendar/css';
import 'framework7/components/popup/css';

// Install F7 Components using .use() method on class:
Framework7.use([Searchbar, Calendar, Popup]);

// Init app
var app = new Framework7({/*...*/});

这种模块化结构提供了最佳的摇树优化结果和包大小优化。

除了 default 导出之外,它还为 Dom7getDevicecreateStoreutilsgetSupport 帮助器提供了命名导出

import Framework7, { getDevice } from 'framework7';

var app = new Framework7({/*...*/});

var device = getDevice();

还提供“Lite”模块

import Framework7 from 'framework7/lite';

ES 模块捆绑包

如果您需要包含所有组件的 Framework7,我们可以包含另一个安装了所有组件的脚本捆绑包

// Import framework with all components
import Framework7 from 'framework7/bundle';

// Init app
var app = new Framework7({/*...*/});

还提供“Lite”捆绑模块

import Framework7 from 'framework7/lite-bundle';

ES 模块导出

Framework Core 包是一个纯 ESM 包,它在 package.json 中具有以下 exports 字段

{
  "exports": {
    ".": "./framework7.esm.js",
    "./core": "./framework7.esm.js",
    "./bundle": "./framework7-bundle.esm.js",
    "./lite": "./framework7-lite.esm.js",
    "./lite/bundle": "./framework7-lite-bundle.esm.js",
    "./lite-bundle": "./framework7-lite-bundle.esm.js",
    "./less": "./framework7.less",
    "./css": "./framework7.css",
    "./css/rtl": "./framework7-rtl.css",
    "./css/bundle": "./framework7-bundle.css",
    "./css/bundle/rtl": "./framework7-bundle-rtl.css",
    "./types": "./framework7-types.d.ts",
    "./components/dialog": "./components/dialog/dialog.js",
    "./components/dialog/less": "./components/dialog/dialog.less",
    "./components/dialog/css": "./components/dialog/dialog.css",
    "./components/dialog/css/rtl": "./components/dialog/dialog-rtl.css",
    ...
  }
}