vue-class-component

简介: vue-class-component

人的教养不能够靠别人传授,人必须进行自我修养。一切苦修也绝不是文化修养,教育是通过人的主动性来实现的,教育牢牢地钉在主动性上。——费希特

官方文档:https://class-component.vuejs.org/

class-componentvue官方库之一,其可以让你使用class的方式定义、编写组件

再加上ts的装饰器,最终效果如下:

<template>
  <div>
    <button v-on:click="decrement">-</button>
    {{ count }}
    <button v-on:click="increment">+</button>
  </div>
</template>
<script>
import Vue from 'vue'
import Component from 'vue-class-component'
// Define the component in class-style
@Component
export default class Counter extends Vue {
  // Class properties will be component data
  count = 0
  // Methods will be component methods
  increment() {
    this.count++
  }
  decrement() {
    this.count--
  }
}
</script>


同样,其可以配合tsx使用,这样就越来越像我们的react

<script lang="tsx">
import { Component, Prop, Vue } from 'vue-property-decorator';
@Component
export default class HelloWorld extends Vue {
  @Prop() private msg!: string;
  count = 0;
  increment() {
    this.count++;
  }
  get twiceTheCounter() {
    return this.count * 2;
  }
  mounted() {
    console.log('mounted')
  }
  // Declare render function
  render() {
    return (
      <div>
        <div>{this.msg}</div>
        <p>You clicked {this.count} times</p>
        <p>{this.twiceTheCounter}</p>
        <button onClick={this.increment}>Click me</button>
      </div>)
  }
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h3 {
  margin: 40px 0 0;
}
ul {
  list-style-type: none;
  padding: 0;
}
li {
  display: inline-block;
  margin: 0 10px;
}
a {
  color: #42b983;
}
</style>
相关文章
|
6月前
|
前端开发
react-router中的render、children、component
react-router中的render、children、component
219 1
|
JavaScript
vue 报错 Cannot find package ‘unplugin-vue-components‘ 解决
vue 报错 Cannot find package ‘unplugin-vue-components‘ 解决
457 0
|
4月前
|
JavaScript
vue 动态组件【详解】component :is
vue 动态组件【详解】component :is
337 0
|
6月前
|
JavaScript 前端开发 编译器
Vue组件(Component)
Vue组件(Component)
61 3
|
6月前
|
JavaScript
Vue 绑定style和class
Vue 绑定style和class
|
JavaScript
vue3 如何在 jsx中使用 component 组件
component 组件是 vue 在模板中加载动态组件的方式,在 jsx 中可以使用if...else自己处理
402 0
|
6月前
|
JavaScript 前端开发
Vue 或者 React 中,什么情况下会用 Es6 的 Class 类
Vue 或者 React 中,什么情况下会用 Es6 的 Class 类
|
6月前
|
前端开发
React Component和Purecomponent区别
React Component和Purecomponent区别
67 0
|
6月前
|
JavaScript 前端开发
Vue class和style绑定
Vue中的class和style绑定是一种非常有用的功能,它允许我们根据组件的状态动态地添加或删除CSS类,或者根据状态更改元素的样式。
88 0
|
JavaScript
Vue2动态绑定class
从基础到实战,我们一环都不要少!
248 0