I’ve made some adjustments in https://codesandbox.io/s/prosemirror-vue-ngomz that make it work. Basically, you don’t have to mess with dispatchTransaction at all—in the simple case, the default will do what you need. Also, if you’re going to save a this.state, you should make sure you update it when it changes (it’s not mutable, applying a transaction gives you a new state). I’ve adjusted it to just use this.view.state.