使用 Vue.js 创建一个 CNODE 社区 (1) - 入门
终于学到了 Vue,选的毕设是用 Vue 创建一个类似 CNODE 的社区。
Vue 作为一个主要运用了 MVVM 架构的框架,很值得我们去学习,就先从 Vue 的官方网站教程中过一遍 demo,尽快熟悉关于 Vue 的各种基础概念。
简述MVVM
MVVM 和 MVC 一样,也是一种代码组织形式。
他把代码分为三个部分,分别是:
Model 表示对数据的操作
View 表示视图
ViewModel 把 Model 的变化更新到 View 上,把 View 的修改同步到 Model
参考答案
MVVM是Model-View-ViewModel的缩写。MVVM是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。
在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
ViewModel 把 Model 的变化更新到 View 上,把 View 的修改同步到 Model
Vue.js的优点
1.学习曲线平缓
2.易上手
3.功能强大
4.使用范围广
创建 Vue 实例
一个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的。通过构造函数 Vue 就可以创建一个 Vue 的根实例,并启动 Vue 应用---入口
必不可少的一个选项就是 el 。 el 用于指定一个页面中己存在的 DOM 元素来挂载 Vue实例,可以是标签。也可以是css语法
通过 Vue 实例的 data 选项,可以声明应用内需要双向绑定的数据。建议所有会用到的数据都预先在 data 内 声明,这样不至于将数据散落在业务逻辑中,难以维护。也可以指向一个已经有的变量
{{ msg }}
var app = new Vue({
el:'#app',
data:{}
})
Vue 文本插值
Vue .js 只支持单个表达式,不支持语句和流控制。如三元运算符也是支持的。
{{ msg }}
{{ a }}
var app = new Vue({
el:'#app',
data:{
msg:'vue.js',
a:2
},
})
// 访问 Vue 实例的属性
console.log(app.$data)
console.log(app.$el)
// 访问data元素的属性-- 直接app.属性名,app.msg
console.log(app.a)
Vue 初探生命周期
每个 Vue 实例在被创建时都要经过一系列的初始化过程——例如,需要设置数据监听、编译模板、将实例挂载到 DOM 并在数据变化时更新 DOM 等。同时在这个过程中也会运行一些叫做生命周期钩子的函数,这给了用户在不同阶段添加自己的代码的机会。
{{ msg }}
var app = new Vue({
el:'#app',
data:{
msg:'vue.js',
a:2
},
created:function(){
alert('Vue 实例创建完成,还未挂载到 DOM')
},
mounted:function(){
alert('Vue 实例已经挂载到 DOM')
}
})
Vue 过滤器
Vue. 支持在{{}}插值的尾部添加一小管道符 “ | ” 对数据进行过滤,经常用于格式化文本,比如字母全部大写、货币千位使用逗号分隔等。过滤的规则是自定义的, 通过给 Vue 实例添加选项 filters 来设置
div id="app">
{{ msg }}
{{ a }}
{{ date }}
{{ date | formatDate}}