当前位置:首页 > 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 示例

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

封装数据库操作

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 中使用

vue实现sqlite的存储

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 实现全文检索的方法 客户端全文检索(适用于小型数据集) 使用 flexsearch 或 lunr.js 等轻量级库实现前端全文检索: import FlexSearch from 'flex…

vue实现画圆弧并着色

vue实现画圆弧并着色

在 Vue 中实现画圆弧并着色 使用 Canvas API 绘制圆弧 在 Vue 组件的 mounted 钩子中,通过 Canvas API 绘制圆弧。创建一个 canvas 元素并获取其上下文:…

vue 实现弹窗

vue 实现弹窗

Vue 实现弹窗的方法 在 Vue 中实现弹窗功能可以通过多种方式完成,以下是几种常见的方法: 使用组件和 v-if/v-show 控制显示 创建一个独立的弹窗组件,通过 v-if 或 v-show…

vue实现树形

vue实现树形

Vue 实现树形组件 在 Vue 中实现树形结构通常需要递归组件和动态数据绑定。以下是实现树形组件的几种常见方法。 递归组件实现 递归组件是 Vue 中实现树形结构的核心方法。通过组件调用自身,可以…

vue 实现$(id)

vue 实现$(id)

在 Vue 中实现类似 jQuery 的 $(id) 功能,可以通过以下几种方式操作 DOM 元素: 使用 ref 属性 Vue 推荐使用 ref 属性来直接访问 DOM 元素或组件实例。在模板中为…

vue实现 页面

vue实现 页面

Vue 实现页面的核心方法 创建 Vue 项目 使用 Vue CLI 或 Vite 快速初始化项目。Vue CLI 是官方脚手架工具,适合传统项目;Vite 提供更快的现代构建体验。 npm cre…