vue组件入门知识全梳理


Posted in Javascript onSeptember 21, 2020

组件

vue组件入门知识全梳理

概念:template是入口组件,那么挂载在template下的组件是入口组件的子组件

局部组件

三步口诀:声子,挂子,用子

  • 声明一个局部组件,变量名首字母大写(为了和H5标签做区分),里面的内容和vue实例化对象的内容相似,但是不需要el,data必须是一个函数,函数返回一个对象
  • 把组件挂载到入口文件的components对象中。
  • 在入口文件的template中使用,可以是双闭合标签也可以是单闭合标签

全局组件

Vue.component(name,options)

第一个参数是组件的名称

第二个参数是组件的对象

注意全局组件要在创建Vue实例化对象前,否则会报错

vue组件入门知识全梳理

// 全局组件(要在创建Vue实例之前)
 Vue.component('Vbtn', {
 template: `<button>全局按钮组件</button>`
 })
 // 1、创建一个入口组件
 // 2、创建头部组件,侧边栏组件和内容组件
 var Heard = {
 template: `
 <div>
 <h2>我是头部组件</h2>
 <Vbtn></Vbtn>
 </div>
 `
 }
 var Aside = {
 template: `
 <div>我是侧边栏组件</div>
 `
 }
 var Content = {
 template: `
 <div>我是内容组件</div>
 `
 }
 var App = {
 template: `
 <div class="main">
 <Heard class = "heaed"></Heard>
 <div class="main2">
 <Aside class="aside"></Aside>
 <Content  class="content"/>
 </div>
 </div>
 `,
 components: {
 Heard,
 Aside,
 Content
 }
 }
 new Vue({
 el: "#app",
 data() {
 return {
 msg: "这是测试"
 }
 },
 template: `
 <App></App>
 `,
 components: {
 App
 }
 });

组件深入

问:为什么要通过父亲获取数据,在传递到子组件呢?

答:通过父亲向后端获取数据,然后在分发到各组件可以减少后端的交互,不然各个组件都向后端发送请求影响性能

见下图:

vue组件入门知识全梳理

父子组件传值(父传子)

1、父 用子 时通过 绑定自定义属性 传递,

2、子要 声明 props:['属性']接收父绑定的自定义属性

3、收到就是自己的随便用

在template中直接使用 在js中this.属性名

vue组件入门知识全梳理

小补充:绑定自定义属性时:常量传递直接用,变量传递加冒号

总结父传子

父用子:先声子、挂子、用子

父传子:父传子(属性)、子声明(接收)、子使用

子传父

1、父 用子 绑定 自定义事件

2、子触发自定义事件:this.$emit()

第一个参数是**自定义事件名**
第二个参数是**传递进去的值**
![image](/img/bVbO3Ps)

全局组件的数据传递 1、通过VUE内置组件slot分发内容

原因:如果不使用slot无法修改全局组件的内容

作用:slot元素作为承载分发内容的出口

2、父子传值

自定义属性传递常量直接使用不需要加冒号

vue组件入门知识全梳理

如果要触发原生的事件需要通过 @原生事件名.native调用

vue组件入门知识全梳理

3、具名插槽

在子组件中声明使用vue的内置组件:

<slot name = "one"></slot>

父组件中调用

<h2 slot= "one"></h2>

这样做的目的:可以一条数据一个坑,数据不会乱了

附加功能

1、过滤器filters

1、作用:对当前数据添油加醋

2、语法:声明在组件内使用filters对象,返回一个函数,函数一定要有返回值

3、调用:template中调用过滤器:数据属性|过滤器名字

var Content = {
  template: `
   <div>
   <input type = number  v-model = "msg"/>
   <h2>{{msg|RmbData}}</h2>
   </div>
  `,
  data(){
   return{
   msg:10
   }
  },
  filters:{
   RmbData(value){
   return '$'+value
   }
  }
 }

生命周期

总结

到此这篇关于vue组件入门知识全梳理的文章就介绍到这了,更多相关vue组件知识内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
用JavaScript编写COM组件的步骤
Mar 17 Javascript
jquery 可拖拽的窗体控件实现代码
Mar 21 Javascript
浅谈javascript 函数属性和方法
Jan 21 Javascript
jquery插件pagination实现无刷新ajax分页
Sep 30 Javascript
前端框架Vue.js中Directive知识详解
Sep 12 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
js遍历json的key和value的实例
Jan 22 Javascript
jQuery 禁止表单用户名、密码自动填充功能
Oct 30 jQuery
vue实现一个炫酷的日历组件
Oct 08 Javascript
vue中$nextTick的用法讲解
Jan 17 Javascript
js实现无限瀑布流实例方法
Sep 16 Javascript
JS 数组和对象的深拷贝操作示例
Jun 06 Javascript
Ajax获取node服务器数据的完整步骤
Sep 20 #Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 #Javascript
vue操作dom元素的3种方法示例
Sep 20 #Javascript
npm ci命令的基本使用方法
Sep 20 #Javascript
js面试题之异步问题的深入理解
Sep 20 #Javascript
js实现简单的点名器随机色实例代码
Sep 20 #Javascript
前端vue+elementUI如何实现记住密码功能
Sep 20 #Javascript
You might like
php使用正则过滤js脚本代码实例
2014/05/10 PHP
PHP中通过fopen()函数访问远程文件示例
2014/11/18 PHP
简单谈谈PHP vs Node.js
2015/07/17 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
javascript语句中的CDATA标签的意义
2007/05/09 Javascript
一个简单的JavaScript数据缓存系统实现代码
2010/10/24 Javascript
js实现翻页后保持checkbox选中状态的实现方法
2012/11/03 Javascript
jsp js鼠标移动到指定区域显示选项卡离开时隐藏示例
2013/06/14 Javascript
原生JS和JQuery动态添加、删除表格行的方法
2015/05/28 Javascript
浅谈Javascript数组的使用
2015/07/29 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
简单谈谈require模块化jquery和angular的问题
2017/06/23 jQuery
layui 监听select选择 获取当前select的ID名称方法
2019/09/24 Javascript
Python的词法分析与语法分析
2013/05/18 Python
python迭代器的使用方法实例
2013/11/21 Python
使用python 获取进程pid号的方法
2014/03/10 Python
python爬虫_微信公众号推送信息爬取的实例
2017/10/23 Python
python3实现多线程聊天室
2018/12/12 Python
python生成带有表格的图片实例
2019/02/03 Python
梅尔频率倒谱系数(mfcc)及Python实现
2019/06/18 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python库matplotlib绘制坐标图
2019/10/18 Python
在线课程:Skillshare
2019/04/02 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
几个MySql的面试题
2013/04/22 面试题
医学院毕业生自荐信
2013/11/08 职场文书
硕士研究生个人求职信
2013/12/04 职场文书
大学生村官任职感言
2014/01/09 职场文书
庆祝国庆节标语
2014/10/09 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python