后来我查了下有使用extract-text-webpack-plugin将css提取合并的。
这个代码:
import 'xx.css' or require('xx.css')
Vue组件 本质上是一个有预定义选项的Vue实例,
指令 带有v- 前缀的特殊特性。作用是 当表达式的值改变时,将其长生的连带影响,响应式地作用于DOM
1 接收父组件传来的参数
组件标签中通过<blog-post post-title="hello!"></blog-post>传入
2 子组件中js中的props:[postTitl]设置属性
3 可以设置数据类型
props:{
title:String,
likes:Number,
isPublished:Boolean,
commentIds:Array,
author:Object
}
4 接收动态赋值
5 传入一个对象的所有属性
6 prop 为单向数据流
所有的prop都是从父组件传到子组件,单向下行绑定,子组件不应该更改prop数据
允许更改的方法
7 替换合并
如果我们从父级组件传入的属性会替换掉子组件原本的属性但是如果是style class会合并起来
form-control,这是在组件的模板内设置好的
date-picker-theme-dark,这是从组件的父级传入的 他的class 为 form-control date-picker-theme-dark 两者合并
8 禁用特性继承
1 命名规则 事件命不会自动转化大小写。触发的事件命和监听的事件命必须一样
2 将原生事件绑定到组件上
在父组件中给子组件绑定一个原生的事件,就将子组件变成普通的HTML标签,不加".native"事件无法触发
3 $listeners
4 .sync修饰符
当一个子组件改变了一个prop中的值时。父组件中的值也改变
注意
有多个属性时当做对象传入
1 语法
2 编译作用域
3 具名插槽
4 作用域插槽
可以从子组件接收数据,并定义渲染的方式
使用is特性来切换组件
<keep-alive>将元素动态组件包括起来,组件会被缓存
注意被包括的组件都有自己的名字,不论是name属性 还是局部/全局注册的
定义的时候什么都不做,只有在组件渲染的时候进行加载并缓存,以备下次访问
Vue实现按需加载
异步加载的组件在打包的时候,会打包成单独的js文件。通过ajax请求回来插入到HTML中。
1 每个new Vue实例的组件中。根实例都可以通过$root属性进行访问
2 ref获取DOM
给元素或组件一个ID然后在js中调用它
3 依赖注入provide inject
在父组件中使用provide定义个属性或者方法
在他的任意子组件中通过inject接收它
4 程序化的监听事件监听
1 父组件通过props把数据传给子组件
2 子组件可以使用$emit触发父组件的自定义事件
5 递归组件
组件可以在他自己的模板中调用自己。必须有name属性,没有name这个属性组件不能自己调用自己,递归的时候需要一个条件来终止递归,v-for
1 基本语法
主要用来服务Vue.component用来生成组件的。
简单说在模板中遇到以该组件命名的自定义标签时,会自动的调用扩展实构造器来生成组件,挂载到自定义元素标签上
Vue.component如果传入的普通对象内部会自动调用Vue.extend()生成对象组件然后通过Vue.component注册
将一些可复用的方法属性封装起来再需要的组件中使用(类似于reset.css)
1 如果混入的属性和方法与原来组件重合会与组件中的为主
2 混入对象的选项在元组件的选项之前调用
全局混入(全局注册的混入对象)