Vue笔记-组件Component-基本使用

Vue.js组件

  • ​提高功能复用性与可维护性,更好的专注于业务逻辑
  • ​组件使用时为自定义html标签形式,通过组件名作为自定义标签名
    <div id="app">
        <p>p标签</p>
        <!-- 组件 -->
        <my-com-a></my-com-a>
    </div>

1、组件注册

  • 组件要能使用必须要先进行注册
  • 组件的注册时候,可以采用PascalCase形式MyComA或者kebab-case形式my-com-a, 但是在视图中引用时,只能采用kebab-case ,因为浏览器在识别时会自动转为小写
    <div id="app">
        <my-com-a></my-com-a>
    </div>

1.1、全局注册

  • 注册之后可以用于任意实例或者组件中
  • ​注意:全局注册必须设置在根Vue实例创建之前
		// 全局注册
        Vue.component('MyComA', {选项配置})     

1.2、局部注册
注册在Vue实例内部(components选项)

    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        // 创建Vue实例
        new Vue({
            el: '#app',
            components: {
                'myComA': {
                    template: `<div>局部注册组件</div>`
                }
            }
        })
    </script>

2、组件选项配置说明(组件的选项和vue实例的基本一致,有个别写法不同)
2.1、template选项

  • ​ 用于设置组件的结构,最终被引入根实例或者其他组件中

注意:有且只能设置一个根元素(全部内容被根元素包裹),内部可以使用模板{{ }}

        Vue.component('MyComA', {
            template: `
            <div>
                 <h1>template内容</h1>
            </div>`,
        })

2.2、data选项 存储组件的数据

  • 与Vue实例的data属性写法不同

  • 组件的data选项必须为函数,数据设置在返回值对象中

    说明:data选择以函数形式实现方式:是为了确保每个组件实例可以维护一份被返回对象的独立的拷贝,不会相互影响

        Vue.component('MyComA', {
            template: `
            <div>
                 <h1>{{ title }}</h1>
            </div>`,
            data() {
                return {
                    title: '组件data'
                }
            },
        })
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`vue-property-decorator` 是一个用于在 Vue使用装饰器语法的库,它提供了一些装饰器来简化 Vue 组件的开发过程。这些装饰器可以用于定义组件的属性、方法、计算属性、生命周期钩子等。 以下是一些常用的装饰器和它们的用法: - `@Component(options?: ComponentOptions)`:将一个类声明为一个 Vue 组件。可以传入一个可选的 `ComponentOptions` 对象来配置组件选项,例如 `template`、`props`、`computed` 等。 - `@Prop(options?: (Vue.PropOptions | Vue.Constructor[] | Vue.Constructor)[] | Vue.PropOptions)`:定义一个组件的 prop 属性。可以传入一个可选的 `PropOptions` 对象来配置 prop 的类型、默认值等。 - `@Watch(path: string, options?: WatchOptions)`:监听一个属性或表达式的变化,并在变化时执行相应的方法。可以传入一个可选的 `WatchOptions` 对象来配置监听选项,例如 `deep`、`immediate` 等。 - `@Emit(event?: string)`:将一个方法标记为触发事件的方法,并指定要触发的事件名。可以传入一个可选的事件名,默认为方法名。 - `@Ref(refKey?: string)`:获取子组件或 DOM 元素的引用,并将其赋值给指定的属性。可以传入一个可选的引用键,默认为属性名。 - `@Inject(key?: string | symbol)`:注入一个父组件提供的属性或方法。可以传入一个可选的注入键,默认为属性名。 - `@Provide(key?: string | symbol)`:在组件中提供属性或方法,以供子组件注入使用。可以传入一个可选的提供键,默认为属性名。 - `@Model(event?: string, options?: (PropOptions | Constructor[] | Constructor)[] | PropOptions)`:将一个 prop 属性设置为组件的 v-model。可以指定要触发的事件名和 prop 的配置选项。 这些装饰器可以与 `vue-class-component` 一起使用,帮助我们更清晰、简洁地定义 Vue 组件,并提供更好的类型支持和可读性。 希望这些笔记对你有所帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值