加入收藏
举报
02-12 19:16
#0
文件名称:
你应该要知道的Vuejs.md
所在目录:
article / Vue
文件大小:
8.36 KB
下载地址:
fyuanfen/note
   
免责声明:本网站仅提供指向 GitHub 上的文件的链接,所有文件的版权归原作者所有,本网站不对文件内容的合法性、准确性或安全性承担任何责任。
文本预览:


* [组件 data 为什么必须是函数?](#组件-data-为什么必须是函数)
* [组件通信](#组件通信)
* [怎么动态添加组件](#怎么动态添加组件)
* [vue-loader 是什么?](#vue-loader-是什么)
* [实现 Vue SSR 基本原理](#实现-vue-ssr-基本原理)
* [数据双向绑定原理](#数据双向绑定原理)
* [对 Vue.js 的 template 编译的理解](#对-vuejs-的-template-编译的理解)
* [vue 为什么采用 Virtual DOM?](#vue-为什么采用-virtual-dom)
* [diff 算法](#diff-算法)
* [vue 和 react 区别](#vue-和-react-区别)
* [vue 的优点是什么?](#vue-的优点是什么)

> 该篇文章主要对 Vue 中应该要掌握的知识点的一些整理。只是一个引子,并没有过多的深入,但是希望能根据这篇文章从各个点对 Vue 有一个更好的了解,对自己有一个更好的定位。只会用 API 的前端不是好的程序员。
## 组件 data 为什么必须是函数?
因为组件可能被多处使用,但它们的 `data` 是私有的,所以每个组件都要 `return` 一个新的 `data` 对象,如果共享 `data`,修改其中一个会影响其他组件
## 组件通信
- 父子组件通信: `props`、`$emit` / `$on`、`provide` / `inject`(2.2.0 新增,主要为高阶插件/组件库提供用例)
- 非父子组件的通信: `event bus`
- 复杂情况: `vuex`
## 怎么动态添加组件
场景:在 vue 中,点击 button,随机生成 a、b、c 组件中的一个
- is
- render
思路:设定一个 components 数组,button 点击一次,push 一个组件名,`v-for` 遍历 `components`,并用 `is` 或 `render` 动态生成
## vue-loader 是什么?
`vue-loader` 是一个 `webpack` 的 `loader`,可以将单文件组件转换为 `JavaScript` 模块
引用文档的说法:
- 默认支持 `ES2015`;
- 允许对 Vue 组件的组成部分使用其它 `webpack loader`,比如对 `