MVVM ( Model-View-ViewModel),MVVM 就是将其中的 View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View中由于需要展示内容而涉及的业务逻辑。
前端框架:一套完整的解决方案
前端组件:针对某个方面进行封装
- html 标签 标记 浏览器解析标签 渲染网页 网页内容(骨架)
- CSS 级联样式表 修饰网页外观 浮动、定位、字体、背景···
- javaScript 脚本语言 嵌套在网页中,可以为网页添加动态效果
Message: {{ msg }}
Mustache 标签将会被替代为对应数据对象上 msg property 的值。无论何时,绑定的数据对象上 msg property 发生了改变,插值处的内容都会更新。
迄今为止,在我们的模板中,我们一直都只绑定简单的 property 键值。但实际上,对于所有的数据绑定,Vue.js 都提供了完全的 JavaScript 表达式支持
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
这些表达式会在所属 Vue 实例的数据作用域下作为 JavaScript 被解析。有个限制就是,每个绑定都只能包含单个表达式,所以下面的例子都不会生效。
{{ var a = 1 }}
{{ if (ok) { return message } }}
指令带有前缀 v- 开头,以表示它们是 Vue 提供的特殊属性。
- {{}}: 不会覆盖标签体中的内容 不能解析标签
- v-text:会覆盖标签体中的内容 不能解析标签
- v-html:会覆盖标签体中的内容 能解析标签
内部支持写表达式:
非凡英才
{{message+1}}非凡英才
内部支持写表达式
非凡英才
绑定方法定义在methods属性中,可以传入自定义参数
methods:{
test(a,b){
alert(a);
}
}
绑定的数据<---->表单元素的值 双向数据绑定
{{message}}
data:{
message:""
}
数据改变之后,对应元素的显示状态会同步更新
data:{
isShow:true,
age:20
}
完整写法是 v-bind:属性名简写的话可以直接省略 v-bind,只保留:属性名
data:{
imgSrc:'img/3.jpg'
imgTitle:"这是一张图片"
}
{{item}}省
{{index+1}}{{item}}省
{{index+1}}{{item.name}}{{item.age}}
data:{
array:['陕西','山西','河南'],
objects:[
{name:'admin',age:23},
{name:'jim',age:22}
]
}
vue的核心是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统:
代码示例:
{{message}}
插值文本
数据绑定最常见的形式就是使用“Mustache”语法的插值文本:
Message: {{ msg }}
Mustache 标签将会被替代为对应数据对象上 msg property 的值。无论何时,绑定的数据对象上 msg property 发生了改变,插值处的内容都会更新。
部分代码示例:
methods:{
test(a,b){
alert(a);
}
}
完整代码示例:
{{message}}
{{message}}
代码示例:
代码示例:
代码示例:
{{item}}省
{{index+1}}{{item}}省
{{index+1}}{{item.name}}{{item.age}}
data:{
array:['陕西','山西','河南'],
objects:[
{name:'admin',age:23},
{name:'jim',age:22}
]
}
代码示例:
序号
姓名
年龄
{{index+1}}
{{user.name}}
{{user.age}}
每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数 据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时 在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
beforeCreate: function () {
console.log('beforeCreatea');
},
created: function () {
console.log('createda ' );
},
beforeMount:function(){
console.log('beforeMounta’);
},
mounted:function(){
console.log('mounteda’);
}