vue学习笔记

269 阅读2分钟

由于近期要做一个物流后台管理系统,项目是基于vue2.0+elementUI技术栈,梳理了一下知识,主要分为如下几个方向,不得不说明,项目结构套用了官网提供的模板快速搭建,所以提供vue-element-admin文档,这个自行研究,还有vue的相关知识,js常用相关的知识等。

一、vue-element-admin官方模板文档

vue-element-admin:panjiachen.github.io/vue-element…

二、Vue相关知识

1.Vue是什么?

官网解释:一套用于构建用户界面渐进式JavaScript框架
构建用户界面:数据驱动页面
渐进式:Vue可以自底向上逐层应用
简单应用:只需一个轻量小巧的核心库
复杂应用:可以引入各式各样的vue插件

2.Vue特点

组件化模式:页面结构一拆到底
声明式编码:不直接操作DOM 对比命令式
虚拟DOM与优秀的Diff算法

3.插值语法与数据绑定

插值语法:{{}}
数据绑定:
单项数据绑定:v-bind => 可简化为:
多项数据绑定:v-model:value="" => 可直接写为:v-model=""

4.el与data两种写法

<div id="root">
    <h1></h1>
</div>

el的两种写法
const vm = new Vue({
 el:'#root', //第一种写法
  data:{
	
  }
})
//第二种写法
vm.$mount('#root') 

//data的两种写法
new Vue({
 el:'#root',
//data的第一种写法:对象式
 data:{

 } 

//data的第二种写法:函数式(脚手架中主要用的就是函数式)
 data(){
  console.log('@@@',this) //此处的this是Vue实例对象
  return{
   
  }
 }
})

5.MVVM模型

M:模型(Model):对应data中的数据
v:视图(View):模板
VM:视图模型(ViewModel):Vue实例对象

image.png

6.数据代理与数据劫持

(1)回顾一下bject.defineProperty

现在假设有个需求,有一个人的对象:名叫张三,性别为男,现在对年龄属性进行定义与修改:

let number = 18
let person = {
    name:'张三',
    sex:'男',
}

Object.defineProperty(person,'age',{
    // value:18,
    // enumerable:true, //控制属性是否可以枚举,默认值是false
    // writable:true, //控制属性是否可以被修改,默认值是false
    // configurable:true //控制属性是否可以被删除,默认值是false
    
//当有人读取person的age属性时,get函数(getter)就会被调用,且返回值就是age的值
    get(){
        console.log('有人读取age属性了')
    return number
},

//当有人修改person的age属性时,set函数(setter)就会被调用,且会收到修改的具体值
    set(value){
        console.log('有人修改了age属性,且值是',value)
        number = value
    }
})

// console.log(Object.keys(person))
console.log(person)

### (2)vue中的数据代理及数据劫持

7.持续更新中...