vue组件知识全梳理

组件

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

局部组件

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

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

全局组件

Vue.component(name,options)
第一个参数是组件的名称
第二个参数是组件的对象
注意全局组件要在建立Vue实例化对象前,不然会报错
imageapp

// 全局组件(要在建立Vue实例以前)
 Vue.component('Vbtn', {
 template: `<button>全局按钮组件</button>`
 })
 // 一、建立一个入口组件
 // 二、建立头部组件,侧边栏组件和内容组件
 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
 }
 });

组件深刻

问:为何要经过父亲获取数据,在传递到子组件呢?
答:经过父亲向后端获取数据,而后在分发到各组件能够减小后端的交互,否则各个组件都向后端发送请求影响性能
见下图:
imageide

父子组件传值(父传子)

一、父用子时经过绑定自定义属性传递,
二、子要声明props:['属性']接收父绑定的自定义属性
三、收到就是本身的随便用函数

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

    image

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

总结父传子

父用子:先声子、挂子、用子
父传子:父传子(属性)、子声明(接收)、子使用测试

子传父

一、父用子绑定自定义事件
二、子触发自定义事件:this.$emit()this

第一个参数是**自定义事件名**
第二个参数是**传递进去的值**
![image](/img/bVbO3Ps)
全局组件的数据传递
一、经过VUE内置组件slot分发内容

缘由:若是不使用slot没法修改全局组件的内容
做用:slot元素做为承载分发内容的出口spa

二、父子传值

自定义属性传递常量直接使用不须要加冒号
image
若是要触发原生的事件须要经过 @原生事件名.native调用
image3d

三、具名插槽

在子组件中声明使用vue的内置组件:
<slot name = "one"></slot>
父组件中调用
<h2 slot= "one"></h2>
这样作的目的:能够一条数据一个坑,数据不会乱了

附加功能

一、过滤器filters

一、做用:对当前数据添油加醋
二、语法:声明在组件内使用filters对象,返回一个函数,函数必定要有返回值
三、调用: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
         }
     }
 }

生命周期

相关文章
相关标签/搜索