当前位置:首页 > VUE

vue实现sqlite的存储

2026-02-22 07:42:20VUE

Vue 中实现 SQLite 存储的方案

在 Vue 中直接操作 SQLite 数据库需要结合浏览器或 Node.js 环境的能力。以下是几种常见实现方式:

浏览器环境使用 Web SQL 或 SQL.js

Web SQL 是浏览器提供的 API(已废弃但仍被多数浏览器支持),SQL.js 是基于 WebAssembly 的 SQLite 移植方案。

Web SQL 示例

// 打开或创建数据库
const db = openDatabase('mydb', '1.0', 'Test DB', 2 * 1024 * 1024)

// 创建表
db.transaction(function (tx) {
  tx.executeSql('CREATE TABLE IF NOT EXISTS logs (id unique, log)')
})

// 插入数据
db.transaction(function (tx) {
  tx.executeSql('INSERT INTO logs (id, log) VALUES (?, ?)', [1, 'Sample log'])
})

SQL.js 示例

vue实现sqlite的存储

import initSqlJs from 'sql.js'

const SQL = await initSqlJs()
const db = new SQL.Database()
db.run('CREATE TABLE test (id INTEGER PRIMARY KEY, name TEXT)')
db.run('INSERT INTO test VALUES (?, ?)', [1, 'Alice'])

Electron 环境使用 SQLite3

在 Electron 应用中可直接使用 Node.js 的 SQLite3 模块。

安装依赖

npm install sqlite3

封装数据库操作

vue实现sqlite的存储

const sqlite3 = require('sqlite3').verbose()
const db = new sqlite3.Database('./mydb.sqlite')

db.serialize(() => {
  db.run('CREATE TABLE IF NOT EXISTS users (id INT, name TEXT)')
  db.run('INSERT INTO users VALUES (?, ?)', [1, 'John'])
})

// 在 Vue 组件中使用
export default {
  methods: {
    fetchUsers() {
      db.all('SELECT * FROM users', (err, rows) => {
        console.log(rows)
      })
    }
  }
}

使用 Capacitor/Cordova 插件

混合应用可通过插件访问设备原生 SQLite 功能。

Capacitor 示例

npm install @capacitor-community/sqlite

Vue 中使用

import { SQLite, SQLiteObject } from '@capacitor-community/sqlite'

const openDB = async () => {
  const db = await SQLite.createConnection('mydb')
  await db.open()
  await db.execute('CREATE TABLE IF NOT EXISTS notes(text TEXT)')
  return db
}

注意事项

  • 浏览器环境的存储有大小限制(通常 5MB-50MB)
  • Web SQL 已不再维护,考虑 IndexedDB 作为替代方案
  • Electron 和 Cordova 方案需要处理路径权限问题
  • 生产环境建议添加错误处理和事务支持

以上方案可根据具体运行环境选择最适合的实现方式。

标签: vuesqlite
分享给朋友:

相关文章

vue自己实现下拉导航

vue自己实现下拉导航

实现下拉导航的基本思路 在Vue中实现下拉导航,可以通过结合Vue的响应式数据和事件绑定特性来完成。主要思路是利用v-show或v-if控制下拉菜单的显示与隐藏,并通过鼠标事件或点击事件触发状态变化。…

vue实现递归

vue实现递归

Vue 实现递归组件的方法 在 Vue 中实现递归组件通常用于处理树形结构数据(如菜单、评论列表、文件目录等)。以下是具体实现方法: 定义递归组件 通过 name 选项让组件可以递归调用自身:…

vue实现slider

vue实现slider

Vue 实现 Slider 组件 使用 Vue 实现 Slider 组件可以通过原生开发或借助第三方库。以下是两种常见方法: 原生实现 Slider 创建一个基础的 Slider 组件,通过 v-m…

vue slot实现

vue slot实现

vue slot 的实现方法 在 Vue 中,slot 是一种内容分发机制,允许父组件向子组件传递模板内容。以下是几种常见的 slot 实现方式: 默认 slot 默认 slot 是最基础的 sl…

通过vue实现

通过vue实现

Vue 实现方法 安装 Vue 确保已安装 Node.js 和 npm,通过以下命令安装 Vue CLI: npm install -g @vue/cli 创建 Vue 项目 使用 Vue CLI…

vue 实现拖拉

vue 实现拖拉

Vue 实现拖拽功能的方法 使用 HTML5 原生拖放 API HTML5 提供了原生的拖放 API,可以通过 draggable 属性、dragstart、dragend、dragover 和 dr…