前言
Chrome 扩展程序是 Chrome 浏览器的一种拓展,可以添加新功能、改变外观或者实现某些网站的自动化操作。使用 Vue.js 开发 Chrome 扩展程序,可以更快速、高效地构建一个功能完善的扩展程序。本文将介绍如何使用 bigroom-vue-chrome-extension
这一 npm 包,来快速开发一个基于 Vue.js 的 Chrome 扩展程序。
bigroom-vue-chrome-extension 简介
bigroom-vue-chrome-extension
是一个基于 Vue.js
的 Chrome 扩展程序开发框架。它利用 Vue.js
的响应式数据绑定和组件化开发思想,能够更加快速、高效地开发 Chrome 扩展程序。同时,它提供了一系列的脚手架工具和组件库,使得开发者可以更加便捷地构建 Chrome 扩展程序。
安装
安装 bigroom-vue-chrome-extension
非常简单,只需要使用 npm 命令即可。在终端中输入以下命令即可安装:
--- ------- ---------------------------- ----------
创建项目
bigroom-vue-chrome-extension
使用 vue-cli-service
渲染模板,并使用 webpack
进行打包。因此,在创建项目之前,需要先安装 @vue/cli
和 @vue/cli-service-global
这两个 npm 包。如果已经安装过,可以跳过该步骤。
--- ------- -- -------- --- ------- -- -----------------------
然后,在命令行中输入以下命令来创建一个 bigroom-vue-chrome-extension
项目:
--- ------ -------------------
接着,选择使用 Manually select features
来手动选择要使用的功能,勾选 Babel
、Router
、Vuex
和 CSS Pre-processors
。
----- ------ ---- ----------------
最后,选择 SASS/SCSS (with dart-sass)
作为 CSS 预处理器,并完成项目的创建。
配置文件
在创建好项目后,需要配置一些文件,以便我们能够使用 bigroom-vue-chrome-extension
的脚手架工具和组件库。
vue.config.js
在项目的根目录下创建一个 vue.config.js
文件,用来配置 webpack
和 vue-cli-service
。以下是最基本的 vue.config.js
配置:
-------------- - - ----------------- - ------ - ----------- ---------------------- ------ ---------------- -- ------- - --------- ----------- - -- ------ - ------ - ------ ----------------- --------- ---------------------- --------- ------------ - -- -------------- - ---------------- - -------------- ----------------- ---------------- ------------- ------------- ----------------------- ----------- ------- ----------------------- ---- - - -
在以上配置中,我们使用了 configureWebpack
、pages
和 pluginOptions
三个属性,其中:
configureWebpack
:配置webpack
,以便将多个入口文件打包成多个输出文件。pages
:定义了三个 Vue.js 页面(popup.html
、options.html
和background.html
)的入口文件、模板文件和输出文件名。pluginOptions
:配置bigroom-vue-chrome-extension
的参数,以便于使用脚手架工具和组件库。
public/manifest.json
在 public
目录下创建一个 manifest.json
文件,用于定义 Chrome 扩展程序的各种属性,如:
- ------------------- -- ------- --- ------ ----------- ---------- -------- -------------- ----- -- -- ------ ------------ ----------------- - ---------------- ------------- ---------------- --- ------ ---------- - -
在以上属性中:
manifest_version
:表示使用的 manifest 版本(这里使用的是2
)。name
:扩展程序的名称。version
:扩展程序的版本。description
:扩展程序的简介。browser_action
:定义了扩展程序的浏览器动作,并提供了一个默认的弹出页面和标题。
组件库
bigroom-vue-chrome-extension
提供了一系列在 Chrome 中使用的组件,如:Button、Input、Select、Tabs、Message、Notification、Storage 等。这些组件可以很方便地使我们能够更快速、更有效地实现某些功能。
Button
Button 组件用于构建一个按钮。
---------- ------- -------------- ---------------------- ------------ ----------- -------- ------ - ------ - ---- ------------------------------ ------ ------- - ----------- - ------ -- -------- - --------- - ------------------- ---------- - - - ---------
在以上代码中,我们使用了 Button 组件,并设置了一个主要按钮(type="primary"
),当该按钮被点击时,将会触发 onClick()
方法。
Input
Input 组件用于构建一个输入框。
---------- ------ --------------- ------------------- ------ -- ----------- -------- ------ - ----- - ---- ------------------------------ ------ ------- - ----------- - ----- -- ------ - ------ - ------ -- - - - ---------
在以上代码中,我们使用了 Input 组件,并使用 v-model
将输入的值绑定到了 value
变量上。
Select
Select 组件用于构建一个下拉选择框。
---------- ------- --------------- ---------- ------- ----------- -- -------- ----------------- -------------------- -- ---------- -- --------- --------- ----------- -------- ------ - ------- ------ - ---- ------------------------------ ------ ------- - ----------- - ------- ------ -- ------ - ------ - ------ --- -------- - - ------ -------- ------ ------- -- - ------ --------- ------ -------- -- - ------ --------- ------ -------- -- - ------ ------- ------ ------ - - - - - ---------
在以上代码中,我们使用了 Select 组件,并设置了一个可清空的下拉选择框。通过循环遍历 options
数组,将每个选项作为一个 Option
组件添加到了下拉选择框中。
Tabs
Tabs 组件用于构建一个选项卡页签。
---------- ----- ------------------------ ------------------------ -------- ---------- -- ------------ --- - ------- ---------- -------- ---------- -- ------------ --- - ------- ---------- -------- ---------- -- ------------ --- - ------- ---------- ------- ----------- -------- ------ - ----- ------- - ---- ------------------------------ ------ ------- - ----------- - ----- ------- -- ------ - ------ - ----------- ------ - -- -------- - ------------------- - ---------------- -------- -- -------- - - - ---------
在以上代码中,我们使用了 Tabs 组件,并设置了三个选项卡页签。当某个选项卡被点击时,将会触发 onTabClick()
方法。
Message 和 Notification
Message 组件用于显示一条消息,Notification 组件用于显示一条系统通知。
---------- ------- -------------- --------------------------- ---------------- ----------- -------- ------ - ------- -------- ------------ - ---- ------------------------------ ------ ------- - ----------- - ------ -- -------- - --------------- - --------------------- -- - ---------- ---------------------- ------ ------------- ------- -------- ----- -- - -------------- -- - - - ---------
在以上代码中,我们创建了一个按钮,并在其点击后,使用 Message.success()
得到一条成功类型的消息,使用 Notification.success()
得到一条成功类型的系统通知。
Storage
Storage 组件用于读写 Chrome 扩展程序的存储。
---------- ------- -------------- --------------------------- ------------- ----------- -------- ------ - ------- ------- - ---- ------------------------------ ------ ------- - ----------- - ------ -- -------- - --------------- - ------------------ -------- -- -- - ----------------- -------- -- ------------------ ------- -- - ----------------- ---------- -- ------ -- - - - ---------
在以上代码中,我们创建了一个按钮,并在其点击后,使用 Storage.set()
保存了一条数据,使用 Storage.get()
获取了保存的数据。
使用脚手架工具
bigroom-vue-chrome-extension
提供了以下脚手架工具:
vue-cli-service chrome
:用于构建 Chrome 扩展程序,并将构建结果输出到dist
目录中。--------------- ------
vue-cli-service zip
:用于将构建结果打包成 ZIP 文件,并输出到根目录中。--------------- ---
vue-cli-service crx
:用于将构建结果打包成 CRX 文件,并输出到根目录中。--------------- ---
示例代码
在本文的最后,提供一个完整的示例代码,供读者参考和学习。
---------- ---- ------------------ ------ ------ -------------- ------- -------------- --------------------------- ------------- ------ --------------- ------------------- ------ -- ------- ------------------ ---------- ------- ----------- -- -------- ----------------- -------------------- -- ---------- -- --------- --------- ----- ------------------------ ------------------------ -------- ---------- -- ------------ ------ - ----------- ---------- -------- ---------- -- ------------ ------ - ----------- ---------- -------- ---------- -- ------------ ------ - ----------- ---------- ------- ------ ----------- -------- ------ - ------- ------ ------- ------- ----- -------- ------- - ---- ------------------------------ ------ ------- - ----------- - ------- ------ ------- ------- ----- ------- -- ------ - ------ - ----------- ------- ------ --- --------- --- -------- - - ------ -------- ------ ------- -- - ------ --------- ------ -------- -- - ------ --------- ------ -------- -- - ------ ------- ------ ------ - - - -- -------- - --------------- - ------------------ ----------- -- -- - ----------------- -------- -- ------------------ ------- -- - ----------------- ---------- -- ------ -- -- ------------------- - ---------------- -------- -- -------- - - - --------- ------- ---------- - ------- ----- - --------
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/600668fad9381d61a3540fd3