一、起步
原理:
Vue.js数据驱动的原理在于View层的视图发生改变时,Vue会通过DOM Listeners来监听并改变Model层的数据。
反之,当Model层的数据发生改变时,也会通过Data Bingings来监听并改变View层的展示。从而实现双向数据绑定的功能。
例如:jQuery通过操作DOM来改变页面的显示,而Vue通过操作数据来实现页面的更新与展示。
这样我们就能很直观的理解数据驱动的意思了。
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,
其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。
Vue.js 就是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层。它的核心是 MVVM 中的 VM,
也就是 ViewModel。 ViewModel负责连接 View 和 Model,保证视图和数据的一致性。
申
声明式渲染
<div id="start"> {{message}} </div> var start = new Vue({ el: "#start", data: { message: "helloWorld,helloVue!" } })
- el:Vue需要操作的元素节点
- data属性:每个 Vue 实例都会代理其
data对象里所有的属性。注意只有这些被代理的属性是响应的。如果在实例创建之后添加新的属性到实例上,它不会触发视图更新。
常用指令介绍
v-cloak:还没有加载完vue.js会出现闪烁问题,这个可以解决
v-text:会覆盖元素中的文本内容
v-html:html 会覆盖元素中的文本内容
v-bind:绑定属性可以简写为 :属性名
v-on: 绑定事件 可以简写为 @事件名
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
[v-cloak] {
color:red;
}
</style>
</head>
<body>
<div id="app">
<!-- 使用 v-cloak 能够解决 插值表达式闪烁的问题 -->
<p v-cloak>{{msg}}</p>
<h4 v-text="msg"></h4>
<!-- 默认 v-text 是没有闪烁问题的 -->
<!-- v-text 会覆盖元素中原本的内容, 但是插值表达式 只会替换自己的这个占位符, 不会把整个元素的内容清空 -->
<div>{{msg2}}</div>
<div v-text="msg2"></div>
<div v-html="msg2">12345</div>
<!-- v-bind: 是Vue中用于绑定属性的指令 -->
<!-- <input type="button" value="按钮" v-bind:title="mytitle"> -->
<!-- 注意: v-bind: 指令可以简写为 :要绑定的属性 -->
<!-- v-bind 中,可以写合法的JS表达式 -->
<input type="button" value="按钮" v-bind:title="mytitle + '1233' ">
<!-- Vue 中提供了 v-on: 事件绑定机制 -->
<input type="button" value="按钮" v-on:click="show">
</div>
<!-- 1.导入Vue的包 -->
<script src="./lib/vue.js"></script>
<script>
var vm =new Vue({
el:"#app",
data:{
msg:"123",
msg2: "<h1>我是一个大大的h1, 我大,我骄傲</h1>",
mytitle: "这是一个自定义的title",
},
methods:{ //这个 methods 属性中定义了当前Vue实例所有可用的方法
show: function(){
alert("hello")
}
}
})
</script>
</body>
</html>
未完待续