vue2脚手架之自定义组件的总结

简介: vue2脚手架之自定义组件的总结

前言

vue脚手架的作用是用来自动一键生成vue+webpack的项目模版,包括依赖库,免去你手动安装各种插件,寻找各种cdn并一个个引入的麻烦。

vue脚手架指的是vue-cli,它是一个专门为单页面应用快速搭建繁杂的脚手架,它可以轻松的创建新的应用程序而且可用于自动生成vue和webpack的项目模板。

vue-cli是有Vue提供的一个官方cli,专门为单页面应用快速搭建繁杂的脚手架。它是用于自动生成vue.js+webpack的项目模板,是为现代前端工作流提供了 batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载,保存时 lint 校验,以及生产环境可用的构建版本

是一个快速构建 vue 项目的工具,通过他,我们可以将 vue 所需要的插件安装完成。

vue-cli这个构建工具大大降低了webpack的使用难度,支持热更新,有webpack-dev-server的支持,

相当于启动了一个请求服务器,给你搭建了一个测试环境,只关注开发就OK。


当我们给一个组件添加原生的dom事件时,如(给组件上添加一个@click点击事件):

App.vue:

       ...

       <StudentLqj ref="student" @click.native="show"></StudentLqj>

       ...

       show(){

               alert('123')

       }

这样的话我们点击页面中的<StudentLqj/>这个组件时,就可以出现绑定的alert事件了。

       注意:如果我们只写(@click=“xxx”)是不起作用的,我们必须这样写:@click.native="xxx"


展示结果:但我们绑定完一个点击事件给子组件时,点击组件的范围就会出现相应的结果!

1.gif


原理:

image.png

观察上图我们可以发现所有子组件中的跟标签<div>只有一个,也只能为一个,如果多写会报错!

image.png

image.png

当我们在app.vue给子组件绑定事件时,其实vue自动的给我们子组件的最外部的跟标签<div/>在添加相应的事件!


自定义组件的总结:

1.一种组件通信的方式,适用于:子组件====>父组件

2.使用场景:A是父组件,B是子组件,B想给A传数据,那么就要在A中给B绑定自定义事件(事件的回调在A中)。

3.绑定自定义事件:

               1.第一种方式,在父组件中:

               <Demo @atlqj="test"/>或<Demo v-on:atlqj="test"/>

               2.第二种方式,在父组件中:

               <Demo ref="demo"/>

               ......

               mounted(){

                       this.$refs.xxx.$on('atlqj',this.test)

               }

               3.若想让自定义事件只触发一次,可以使用once修饰符,或$once方法。

4.触发自定义事件:this.$emit('atlqj',数据)

5.解绑自定义事件this.$off('atlqj')

6.组件上也可以绑定原生DOM事件,需要使用native修饰符。

7.注意:通过this.$refs.xxx.$on('atguigu',回调)绑定自定义事件时,回调要么配置在methods中,要么用箭头函数,否则this指向会出问题!

目录
相关文章
|
18天前
|
资源调度 JavaScript API
vue3封装城市联动组件
vue3封装城市联动组件
|
21天前
|
JavaScript 前端开发 开发者
哇塞!Vue.js 与 Web Components 携手,掀起前端组件复用风暴,震撼你的开发世界!
【8月更文挑战第30天】这段内容介绍了Vue.js和Web Components在前端开发中的优势及二者结合的可能性。Vue.js提供高效简洁的组件化开发,单个组件包含模板、脚本和样式,方便构建复杂用户界面。Web Components作为新兴技术标准,利用自定义元素、Shadow DOM等技术创建封装性强的自定义HTML元素,实现跨框架复用。结合二者,不仅增强了Web Components的逻辑和交互功能,还实现了Vue.js组件在不同框架中的复用,提高了开发效率和可维护性。未来前端开发中,这种结合将大有可为。
65 0
|
22天前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
22天前
|
JavaScript 前端开发
[译] 复用 Vue 组件的 6 层手段
[译] 复用 Vue 组件的 6 层手段
|
1天前
|
存储 API
vue3中如何动态自定义创建组件并挂载
vue3中如何动态自定义创建组件并挂载
|
23天前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
1天前
|
JavaScript
vue 函数化组件
vue 函数化组件
|
1月前
|
JavaScript 程序员 开发者
vue组件的使用与基础知识你真的完全明白吗?
【8月更文挑战第16天】vue组件的使用与基础知识你真的完全明白吗?
33 3
vue组件的使用与基础知识你真的完全明白吗?
|
18天前
|
存储 JavaScript
vue组件的五种传值方法(父子\兄弟\跨组件)
vue组件的五种传值方法(父子\兄弟\跨组件)
|
22天前
|
JavaScript 前端开发 Serverless
[译] VueJS 中更好的组件组合方式
[译] VueJS 中更好的组件组合方式