使用Vue开发自己的Chrome扩展程序过程详解

使用Vue开发自己的Chrome扩展程序

开发Chrome扩展程序可以用于个性化配置Chrome浏览器功能,同时也是Chrome浏览器生态中非常重要的一部分。本篇文章将会向你详细讲解如何使用Vue开发自己的Chrome扩展程序。

准备工作

首先,需要安装最新版的Node.jsVue CLI工具。安装完成后,使用以下命令创建一个基于 Vue 的 Chrome 扩展程序模板:

vue create --preset jeneser/chrome-extension my-extension

该命令将使用预先设定好的Vue CLI插件(preset)来自动生成基本的Chrome扩展程序骨架,省去了繁琐的基础应用搭建环节。这个骨架中包含了一个完整的Vue应用,并且已经预置了对Chrome扩展程序的处理方式。

基础骨架

模板创建成功后,我们可以看到以下内容:

my-extension
├── public
│   ├── manifest.json
│   └── index.html
│
├── src
│   ├── background.js
│   ├── components
│   │   └── HelloWorld.vue
│   ├── options
│   │   ├── index.js
│   │   └── Options.vue
│   ├── popup
│   │   ├── index.html
│   │   ├── index.js
│   │   └── Popup.vue
│   ├── App.vue
│   ├── assets
│   │   └── logo.png
│   └── main.js
└── package.json

所有Chrome扩展程序都需要一个manifest.json文件来描述扩展。Vue CLI 模板已经为我们设置好了manifest.json文件。现在,应该可以通过在Google chrome上,选择“扩展程序”,检查你的新项目是否已经出现在扩展程序管理器中了。

开始开发

Vue CLI的骨架提供了许多方便的功能。我们在src目录下可以看到background.js文件,用于处理Chrome扩展程序的后台任务;popup目录下存放的是当前激活标签页的弹出窗口;。

我们可以使用Vue框架轻松地为我们的扩展添加组件。在components目录下我们可以创建类似Vue组件的文件,该文件应该具有以下特征:

<template>
  <div>Hello, {{ name }}!</div>
</template>

<script>
module.exports = {
  props: ['name']
};
</script>

<style scoped>
div {
  font-weight: bold;
}
</style>

通过上述代码可以看出,Vue组件与网站中的普通组件开发是相似的。另外,需要特别注意的是,为了确保作用域不互相干扰,我们会在样式上使用scoped关键字。这使得样式只会作用于当前组件内部。

示例1 - 扩展程序选项页

从示例中我们可以看出,Vue CLI创建的基础骨架提供了一个名为Options的组件,并且已经为我们设置好了快捷键。该组件在options目录下,而且指定为扩展程序的选项页面。我们可以在src/options/Options.vue文件中列出所有需要在选项页上列出的选项。

<template>
  <div>
    <label>
      <input type="checkbox" v-model="enabled" />
      {{ 'Enable feature' }}
    </label>
  </div>
</template>

<script>
module.exports = {
  data() {
    return {
      enabled: false
    };
  }
};
</script>

在返回的JS对象中,数据里存储了需要在页面上显示的数据,比如全局的选项、复选框的选中状态等。

需要注意的是,在使用v-model时,该变量的值通常应该存储在Vue实例的data中(如示例中的enabled变量)。这样,如果该值发生变化,页面也将相应地更新。现在,只需稍作修改,就能添加更多可供自定义的选项,完成一个功能完备的选项页。

示例2 - 弹出窗口

开发弹出窗口与开发选项页的方式基本相同。下面是一个我们添加到./popup/Popup.vue文件的简单组件的示例:

<template>
  <div>
    {{ message }}
  </div>
</template>

<script>
module.exports = {
  data() {
    return {
      message: ''
    }
  },
  mounted() {
    chrome.tabs.query({ active: true, currentWindow: true }, tabs => {
      this.message = `Active tab title: ${tabs[0].title}`
    })
  }
}
</script>

该组件会获取当前页面中的标签页地址,并在弹出窗口中显示出来。在background.js文件中设置监听器即可在浏览器标签页上激活弹出窗口:

chrome.browserAction.onClicked.addListener(() => {
  chrome.windows.create({
    url: chrome.runtime.getURL('popup/index.html'),
    type: 'popup',
    width: 360,
    height: 240
  })
})

这段代码监听浏览器当前激活的标签页上的用户单击事件。当用户单击扩展程序图标时,将启动一个新的标签页,并在其中加载popup/index.html文件,最后弹出窗口的大小是360x240像素(需要注意的是,该值不能大于当前屏幕窗口大小)。

打包和发布

在这里我会简单提一下如何打包Vue构建,并在Chrome商店发布扩展程序。

首先需要在manifest.json文件中指定扩展程序的版本号:

{
  "version": "1.0.0",
  // ...
}

然后使用以下命令打包扩展程序:

npm run build

打包完毕后,可以在dist目录下找到生成的所有生产文件。将其压缩为一个zip包,换名为 my-extension.zip

最终将zip包上传到Chrome 开发者控制台中,即可使用Chrome开发者控制台提供的服务进行发布。

结语

Vue CLI 模板大大简化了创建 Chrome 扩展的过程。即使你不熟悉Chrome扩展程序的工作原理,只要你掌握了Vue框架的相关知识,你依然可以使用它轻松创建扩展程序。祝愿你创建出一个功能完备、简单易用的扩展程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Vue开发自己的Chrome扩展程序过程详解 - Python技术站

(0)
上一篇 4天前
下一篇 4天前

相关文章

  • React中的权限组件设计问题小结

    我将详细讲解“React中的权限组件设计问题小结”的完整攻略。首先,我们需要明确权限组件的概念和作用,权限组件用于控制用户在系统中的访问权限,保障系统的安全性和稳定性。在React中,我们可以使用高阶组件(HOC)来实现权限控制。 一、HOC高阶组件思路 1.定义一个高阶组件 我们首先需要定义一个高阶组件,用于封装特定的组件并添加权限控制逻辑。以下是一个基本…

    Vue 3天前
    00
  • vue + webpack如何绕过QQ音乐接口对host的验证详解

    如何绕过QQ音乐接口对host的验证? 针对一些特定的服务器,如QQ音乐接口,可能对host字段的验证比较严格。此时我们需要采取一些手段来进行绕过。 本文针对vue + webpack项目,将详细讲解如何绕过QQ音乐接口对host的验证。 方案一:使用webpack-dev-server的proxyTable 我们可以在webpack配置文件中的devSer…

    Vue 3天前
    00
  • 2022最新前端常见react面试题合集

    下面我将为您详细讲解“2022最新前端常见react面试题合集”的完整攻略,具体过程如下: 1.了解React框架 在回答React面试题之前,我们需要了解React框架的基本知识。这包括掌握React组件、虚拟DOM、生命周期函数以及Redux等内容。在掌握React框架的基础上,才能更好地回答相关的面试题。同时,也要学会使用React相关的工具,比如We…

    Vue 3天前
    00
  • 在VUE中实现文件下载并判断状态的方法

    实现文件下载并判断状态的方法涉及到前端和后端两个方面,主要的实现步骤如下: 前端部分:在Vue中发起文件下载请求,一般采用axios或者vue-resource等请求库来实现。具体步骤如下: 安装axios或者vue-resource npm install axios –save npm install vue-resource –save 引入相关库…

    Vue 3天前
    00
  • vue组件打包并发布到npm的全过程

    下面是Vue组件打包并发布到npm的全过程: 第一步:创建Vue组件项目 首先,我们需要创建一个Vue组件项目,可以使用Vue CLI来创建项目。具体步骤如下: 打开命令行工具,并输入以下命令来安装Vue CLI: npm install -g @vue/cli 接着,在指定的目录下运行以下命令来创建一个Vue组件项目: vue create your-pr…

    Vue 3天前
    00
  • vuex的辅助函数该如何使用

    Vuex是一个专为Vue.js应用程序开发的状态管理模式。Vuex的辅助函数提供了一种简化使用Vuex的方法。本文将详细介绍Vuex辅助函数的使用方法,以及两个示例的说明。 关于Vuex辅助函数 Vuex的辅助函数本质上是基于Vuex Store的全局getState、commit、dispatch和mapState、mapGetters、mapMutati…

    Vue 3天前
    00
  • element日历calendar组件上月、今天、下月、日历块点击事件及模板源码

    下面是详细讲解 “element 日历 calendar 组件上月、今天、下月、日历块点击事件及模板源码”的完整攻略。 1. 功能说明 element 日历 calendar 组件是一款强大的日期选择组件,常用于项目中的日期选择、预约等场景。在本篇攻略中,将详细讲解其上月、今天、下月、日历块点击事件及模板源码等内容。 上月、下月按钮点击事件:点击上月、下月后…

    Vue 3天前
    00
  • 超简单的Vue.js环境搭建教程

    超简单的Vue.js环境搭建教程 1. 确认开发环境 在开始之前,需要确认本地电脑是否已经安装了 Node.js,如果没有,请下载并安装它。安装完成后,使用命令 node -v和npm -v 确认是否安装成功。 2. 安装Vue的脚手架 在Vue中我们可以使用脚手架工具vue-cli快速构建项目,首先需要使用npm安装vue-cli。在命令行中输入下面的命令…

    Vue 3天前
    00
  • TypeScript在Vuex4中使用TS实战分享

    当使用Vue框架时,使用Vuex作为状态管理可以方便的帮助我们管理应用程序中的所有数据。而在Vuex 4中可以使用TypeScript简化代码。 以下是在Vuex 4中使用TypeScript的完整攻略: 准备工作 首先安装最新版本的Vue CLI: npm i -g @vue/cli 然后创建一个新的Vue项目: vue create vuex-ts-de…

    Vue 3天前
    00
  • vue.js中引入vuex储存接口数据及调用的详细流程

    下面我将为你详细讲解在Vue.js中如何通过Vuex储存接口数据及调用的详细流程。 1. 什么是Vuex? Vuex是Vue.js的官方状态管理库,它可以将多个组件中的共享状态抽离出来,以统一的方式管理。Vuex的核心概念包括: state: 状态,用于存储数据 getter: 获取状态,类似组件中的计算属性 mutation: 修改状态,只能同步修改 ac…

    Vue 3天前
    00