模板语法
(1)插值
使用script标签引入,那么会暴露一个 Vue的全局变量
Vue是一个构造器函数
我们要在模板中书写js语法,那么我们使用了一个叫做 mustache 的语法糖( 双大括号 )
我们将js的语法写在{
{}} 里面
new Vue的到的实例,我们这边称之为 根实例
很实例也是一个组件
组件: 组件是一个具有 html css js等的一个聚合体
数据改变,视图就会跟着改变,这种形式我们称之为: 数据驱动视图
M -> VM
问题:
1. 为什么script标签引入之后,就会有一个全局变量呢?
( function ( global ) {
console.log( global ) //window对象
global.Vue = function(){}
})( this )
2. 为什么模块化引入( npm/cnpm/yarn )也可以呢?
vue使用了 Module.exports / amd
( typeof exports ==='object' ) && ( typeof module !== 'undefined' ) ?
module.exports = factory() // Vue :
typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.Vue = factory());
看Vue.js源代码
1. 是有匿名函数来进行封装的
( function () {})()
第一个() 是匿名函数的定义
第二个() 是匿名函数调用
匿名函数好处:
1. 安全性高
2. 解决命名冲突
( function ( global, factory ) {
// global 指的全局对象
// factory 工厂函数
})( this, function () {})
2. Vue是如何即可以使用Vue全局变量,也可以模块化安装
3. 它是利用原型来进行封装的
4. 原型的使用
function Fn ( options ) {
//this 实例中 fn的到的结果 实例 var fn = new Fn()
}
Fn.protype.na