一、vuex定义

import Vue from 'vue'
import Component from 'vue-class-component'
import { mapGetters, mapActions } from 'vuex'

// post接口
import { Post } from './post'
@Component({
  computed: mapGetters([
    'posts'
  ]),
  methods: mapActions([
    'fetchPosts'
  ])
})
export default class Posts extends Vue {
  // 在类属性声明映射的getter和action
  // 你可能需要添加 `!` 在类属性后面
  // 为了避免编译错误(需要明确的赋值断言).
  
  // 映射getter
  posts!: Post[]
  // 映射action
  fetchPosts!: () => Promise as void

  mounted() {
    // 使用getter和action
    this.fetchPosts().then(() => {
      console.log(this.posts)
    })
  }
}

二、$refs扩展

@Component
export default class InputFocus extends Vue {
  render(){
  	return <input ref="input" />
  }
  // 注意,类型注释(使用冒号:),而不是值赋值(=)
  $refs!: {
    input: HTMLInputElement
  }
  mounted() {
    this.$refs.input.focus()
  }
}