一、插槽(slot) 就是页面分离出去的 公共部分 相当于PHP 的 include 替换部分
种类: 不具名插槽 覆盖不具名插槽 具名插槽 覆盖具名插槽
特点:
1、不具名公共插槽
覆盖公共插槽
公共插槽的唯一性
2、具名插槽(带有名称的来进行替换不同的位置)
二、extend拓展组件模板
通过实例为组件传值
三、Vue中的computed计算属性 有冗余(功能与methods和filter稍有些重叠) 计算方法 过滤器
四、vue 中的自定义指令
1、组成结构
Vue.directive(指令名, 指令实现内容)
传过去的: 属性名 指令名 属性值
2、directive 中的钩子函数(在实列化前还是实例化后)相当于js 构造函数 具有生命周期
1)bind
只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作
2)inserted
被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)
3)update
被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新
4)componentUpdated
被绑定元素所在模板完成一次更新周期时调用
5)unbind
只调用一次,指令与元素解绑时使用
五、动画
v-if(条件渲染)
v-show(条件展示)
动态组件
在组建的根节点上,并且被vue实例DOM方法触发,如appendTo方法把组件添加到某个根节点上
Vue推荐Animate.css样式库来拓展丰富Vue的动画效果,如果用别人的动画库就不得不涉及到自定义类名了(CSS动画插件)
1)Animate.css官方库地址
https://daneden.github.io/animate.css/
Vue中的动画 Javascript钩子
当只用 JavaScript 过渡的时候, 在 enter 和 leave 中,回调函数 done 是必须的 。 否则,它们会被同步调用,过渡会立即完成。
velocity动画库(JS动画插件)
velocity是专门用于拓展出来服务于JS渲染动画的,我们可以结合Vue进行使用
六、路由
1、相当于a链接
a)router-link (超链接标签)
b)to(需要跳转的目标地址)
2、切换导航链接时,相应单页面的内容会发生变化,这边就需要一个容器去接收组件的内容
<router-view></router-view>
七、Vue中的动态路由参数params
1)动态路径参数 以冒号开头
2)获取动态路由参数
let list = {template: ‘<h1>$route.params.id</h1>‘}
3)单参
4)多参
/list/测试/name/三日
八、Vue中的动态路由参数query(相当于get请求 带参数界面)
-----------------------------------------------------------------------------------------------
项目实践:
开发一个 记事本 的项目
脚手架安装
创建脚手架的目的
可以帮助我们构建好一个空的项目 包括目录,文件命名, 入口文件, 依赖插件, 打包程序
vue ,(自带了webpack的小型服务器 ,所以不用我们再去使用服务器)
vue全局安装指令:
npm install --global vue-cli -g
webpack (vue init webpack notepad), 初始化一个基于webpack模板的名字叫做notepad
webpack是一个模块打包器。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
grunt(npm install -g grunt-init)