组建的两个核心点
1.响应式数据绑定 2.组合的视图组件

核心点图

数据---vm视图模型---数据渲染的页面
根据MVVM模式解释双向绑定数据例子
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>双向绑定数据</title><script type="text/javascript" src="vue.js"></script>
</head>
<body><!-- 视图模板 --><div id="demo">
<input type="text" v-model="message"/>
<p>{{message}}</p></div><script>
// 数据模型
let data={ message:'Hello World!'
} // 视图模型
var vm=new Vue({ el:'#demo', data:data
}); console.log(vm)</script>
</body>
</html>vue.js入门实例,详细解说
每个 Vue.js 应用都是通过构造函数 Vue 创建一个 Vue 的实例
var vm = new Vue({
// 数据、模板、挂载元素、方法、生命周期钩子等选项
})
常见的几个:
<strong>data</strong> 类型 Object | Function
<strong>methods</strong> 类型 { [key: string]: Function }
<strong>el</strong> 类型 string | HTMLElement
<strong>template</strong> 类型 string
具体查看API
实例
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>vue.js入门实例</title><script type="text/javascript" src="vue.js"></script>
</head>
<body><!-- 模板 --><div id="demo">
<span v-on:click="evenClick">{{message}}</span></div><script>// 数据
let data={ message:'Hello World!'
}// 视图模型//声明式渲染,只需要挂载选择器将数据渲染到模板
var vm=new Vue({ el:'#demo', data:data, methods:{
evenClick(){
alert('Hello World')
}
}
})</script>
</body>
</html>声明式渲染【如上&& vue常用】 PS 命令式渲染【原生】
声明式渲染 : 只要关心在哪里(where)做什么(what)无需关心如何实现的(how)
命令式渲染:what +where+how
举例:给数组每个数字乘以2
声明式渲染【也可以如上实例中的举例】
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>声明式渲染</title><script type="text/javascript" src="vue.js"></script>
</head>
<body><script>
var arr=[1,2,3,4,5]; var newArr=arr.map(function(item){ return item*2
}); console.log(newArr)</script>
</body>
</html>命令式渲染
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>命令式渲染</title><script type="text/javascript" src="vue.js"></script>
</head>
<body><script>
var arr=[1,2,3,4,5]; var newArr=[]; for(var i=0;i<arr.length;i++){
newArr.push(arr[i]*2)
}; console.log(newArr)</script></body></html>内置指令

内置指令
模板
模板:【三类】
1.html模板:基于DOM模板,模板是可解析的有效的Html
2.template字符串模板:模板将会替换挂载的元素,挂载元素的内容都将被忽略 // 根节点只有一个 //将html结构写在一对script标签中,这只为type="x-template"
3.模板---render函数
三个模板举例:
html模板
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>html模板</title><script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="demo"><div v-html="html"></div></div><script>let obj={ html:"<div>Hello World</div>"}var vm=new Vue({ el:"#demo", data:obj
}); </script>
</body>
</html>template字符串模板【两种方式】
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>template模板1</title><script type="text/javascript" src="vue.js"></script></head><body><div id="demo"><div>Hello</div></div><script>var str="<div>Hello World</div>";var vm=new Vue({
el:"#demo",
template:str
});// 页面渲染结果是Hello World 而不是Hello,原因是template的权重较高//var str ="只能包含一个div,或者div里面嵌套div等其他元素,不能并列" //在es6语法中,可以写成var str=` `;【该符号在键盘上1的左边切换到英文模式】这种方式的好处是可以换行 </script></body></html>
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>template2模板</title><script type="text/javascript" src="vue.js"></script></head><body><div id="demo"><div>Hello</div></div><script type="x-template" id="temp"><div>Hello World</div></script><script>
var vm=new Vue({
el:"#demo",
template:"#temp"}); //引入模板引擎,只能在本页面复用</script></body></html>模板---render函数
render 类型 function
render 函数接收一个 createElement 方法作为第一个参数用来创建 VNode
createElement(标签名,[数据对象],子元素)
数据对象属性:
class:{} 绑定class,和v-blind:class 一样的API
style:{} 绑定class,和v-blind:style 一样的API
attrs:{} 添加行间属性
domProps:{} DOM元素属性
on:{} 绑定事件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>template2模板</title><script type="text/javascript" src="vue.js"></script><style type="text/css">.yellow{ background-color: yellow
}</style></head><body><div id="demo"></div><script>
var vm=new Vue({
el:"#demo",
render(createElement){ var obj=createElement( "ul",
{ class:{
yellow:true
},
style:{
fontSize:"50px"
},
attrs:{
type:"text",
name:"email"
}
},
[
createElement("li",1),
createElement("li",2),
createElement("li",3)
]
);
console.log(obj) return obj;
}
}); </script>
</body>
</html>总结:
1.渐进式框架Vue
2.vue中两个核心点
3.虚拟DOM
4.MVVM模式
5.Vue实例
6.声明式渲染
7.指令
8.模板
作者:Searchen
链接:https://www.jianshu.com/p/19852ba8e974
随时随地看视频