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 相关文章推荐
JS应用之禁止抓屏、复制、打印
Feb 21 Javascript
ExtJS的FieldSet的column列布局
Nov 20 Javascript
js几个验证函数代码
Mar 25 Javascript
JavaScript实现快速排序(自已编写)
Dec 19 Javascript
javascript中call和apply方法浅谈
Sep 27 Javascript
javascript创建和存储cookie示例
Jan 07 Javascript
jQuery控制网页打印指定区域的方法
Apr 07 Javascript
JavaScript代码实现图片循环滚动效果
Mar 19 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
Javascript面试经典套路reduce函数查重
Mar 23 Javascript
layui实现左侧菜单点击右侧内容区显示
Jul 26 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 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技巧小结【推荐】
2017/01/19 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP使用微信开发模式实现搜索已发送图文及匹配关键字回复的方法
2017/09/13 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
用apply让javascript函数仅执行一次的代码
2010/06/27 Javascript
jquery使用ul模拟select实现表单美化的方法
2015/08/18 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
jQuery.ajax向后台传递数组问题的解决方法
2017/05/12 jQuery
一次围绕setTimeout的前端面试经验分享
2017/06/15 Javascript
浅析vue深复制
2018/01/29 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
2018/11/30 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
vue实现浏览器全屏展示功能
2019/11/27 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
一起来了解一下JavaScript的预编译(小结)
2021/03/01 Javascript
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
TensorFlow Session使用的两种方法小结
2018/07/30 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python3.5以上版本lxml导入etree报错的解决方案
2019/06/26 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
Python中turtle库的使用实例
2019/09/09 Python
基于Python解密仿射密码
2019/10/21 Python
Python Pandas 转换unix时间戳方式
2019/12/07 Python
Python 使用 prettytable 库打印表格美化输出功能
2019/12/26 Python
详解PyQt5信号与槽的几种高级玩法
2020/03/24 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
基于HTML5超酷摄像头(HTML5 webcam)拍照功能实现代码
2012/12/13 HTML / CSS
字中字效果的实现【html5实例】
2016/05/03 HTML / CSS
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
项目经理任命书内容
2014/06/06 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
Python进度条的使用
2021/05/17 Python
JavaScript阻止事件冒泡的方法
2021/12/06 Javascript
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python