在jsPsych中使用Vue

在这里插入图片描述

jspsych 介绍

jsPsych是一个非常好用的心理学实验插件,可以用来构建心理学实验。具体的就不多介绍了,大家可以去看官网:https://www.jspsych.org/latest/

但是大家在使用时就会发现,这个插件只能使用js绘制界面,或者说传一段html代码,就是不支持任何现代化的前端框架。在如今的习惯了组件化的前端看来是非常的难受,代码复用性非常差,编程体验也不好。

jspsych-vue插件介绍

今天给大家推荐的一个组件 jspsych-vue就是为了解决这个问题而设计的。下面简单介绍下如何使用。

创建vue工程

使用npm create vue创建就可以。这里就不多赘述了。

安装

使用yarn或者npm安装都可以:

yarn add jspsych-vue

导入样式

需要在main.js中导入样式:

import 'jspsych/css/jspsych.css' //这里导入
import { createApp } from 'vue'
import App from './App.vue'

const app = createApp(App)
app.mount('#app')

使用

在App.vue中,使用Jspsych创建一个渲染实验的位置,比如:

<script setup>
import JsPsychVue from "jsPsych-vue";
var instance;
const init = e => instance = e;
</script>

<template>
  <JsPsychVue :options="options" @init="init">
  </JsPsychVue>
 </template>

这里就顺利拿到了jspsych的实例instance。下面就和jspsych原生的一样,定义一个timeline,然后run就可以。

import jsPsychImageKeyboardResponse from '@jspsych/plugin-image-keyboard-response'

onMouted(()=>{
	const timeline = [
		type: jsPsychImageKeyboardResponse
	]
	jspsych.run(timeline)
})

看到这里可能就有人问了,我这样写和原生的jspsych有什么区别???

下面就是神奇的地方,你可以用一个组件代替plugin,需要做的就是导出一个info就可以。

例子:

<template>
<div> {{ props.hello }} </div>
<button @click="handleClick">点击跳转</button>
</template>
<script setup lang="ts">
import { JsPsych } from "jspsych";
import { inject } from "vue";

const jsPsych: JsPsych = inject('jsPsych')!
const props = defineProps(['trial', 'on_load'])

const handleClick = () => jsPsych.finishTrial()

defineOptions({
  info: {
    name: 'hello world',
    parameters: {
      msg: {
        type: String,
        default: 'hello'
      }
    }
  }
})
</script>

简单来说,需要导出一个info对象,告诉jspsych需要传入什么参数,这个参数可以在timeline里定义。然后也没有trial函数了,在轮到这个trial的时候,会自动挂载这个组件,然后执行setup方法。把之前trial函数的内容放在setup中就可以。

最后,不要忘记调用jspsych.finishTrial来结束当前的trial。

用了这个组件,可以随心所欲的在jspsych中使用vue的众多UI库了!

最后放上仓库地址,觉得有帮助的小伙伴可以点点star!https://github.com/HGGshiwo/jspsych-vue.git

相关推荐

  1. vue使用axios发送请求

    2024-07-18 22:28:02       55 阅读
  2. axios如何vue使用

    2024-07-18 22:28:02       49 阅读
  3. vue3使用pinia

    2024-07-18 22:28:02       25 阅读
  4. vue项目使用TS

    2024-07-18 22:28:02       27 阅读
  5. Vue3 使用 styled-components

    2024-07-18 22:28:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-18 22:28:02       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-18 22:28:02       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-18 22:28:02       58 阅读
  4. Python语言-面向对象

    2024-07-18 22:28:02       69 阅读

热门阅读

  1. Oracle select for update 用法

    2024-07-18 22:28:02       18 阅读
  2. [rustlings]11_hashmaps

    2024-07-18 22:28:02       21 阅读
  3. docker替换主程序排错

    2024-07-18 22:28:02       21 阅读
  4. 好用的Ubuntu下的工具合集[持续增加]

    2024-07-18 22:28:02       22 阅读
  5. OkHttp3

    OkHttp3

    2024-07-18 22:28:02      19 阅读
  6. FastAPI 学习之路(五十四)startup 和 shutdown

    2024-07-18 22:28:02       21 阅读
  7. 二叉搜索树(相关函数实现)

    2024-07-18 22:28:02       22 阅读
  8. PTA - Hello World

    2024-07-18 22:28:02       19 阅读
  9. 项目实战问题

    2024-07-18 22:28:02       20 阅读