vue-1

vue 是什么?

  • 尤雨溪 vue.js框架的作者
  • 2014年2月,开源了一个前端开发库Vue.js
  • Vue.js 是一个JavaScript来编写的框架
前端框架有什么用
  • 框架就是给了规则,并实现细节
    • 发者按照规则,去实现业务逻辑
  • 帮助我们去节省DOM操作的实现细节;
    • 将数据与页面的元素挂钩
  • 双向数据绑定
    • 页面改变影响内存;内存改变影响页面
启动vue
<!--1.引包-->   
     <script type="text/javascript" src="./vue.js"></script> 
<!--2.页面中留坑--> 
    <div id="app"></div> 
<!--3.启动Vue--> 
    new Vue(options)
<!--4.声明数据、页面、目的地--> 
    options(选项)
   
注释:
    el: 坑
    Vue将template属性结合data属性,将数据渲染到el指定的坑中
    {{可以使用过data中的属性}} 插值表达式 也可以调用函数 也可以三元表达式;
    v-model="data的属性"
  • options
    • el (字符串 或 DOM对象)
    • template || render 选其一
      • template 字符串,页面视图V(view)
        • 只能有一个根节点;
        • 在Vue2中不能用body标签;
        • template中使用的变量 data一定要声明;
        • template中使用的函数 methods一定要声明;
      • render 渲染的内容,函数;
        • render: c=>c(app)
    • data 一个函数, return一个对象;数据(Model)
    • methods 一个对象 (功能); key(函数名),value(函数体)
常用指令 v-
  • 双向数据绑定 v-model="变量名" (变量与页面的关系)
    • 必须要在data中声明(页面改变影响内存改变)
    • 在methods中 使用data的属性 this.xxx
    • 在template中 使用data的属性 直接用 xxx
  • v-if v-else 是邻居,元素的插入和移除
  • v-show 是隐藏与显示
  • v-text 双标签、就是元素的innerText
  • v-html 双标签、就是元素的innerHTML
  • v-for 变量名 in 数据
    • 以数组为数据 v-for=key="index""(ele,index) in arr" :
    • 以对象为数据 v-for="(value,key,index) in obj" :key="index"
  • v-on:原生事件="表达式 || 函数"
    • 简写 => @原生事件 如: @click= "del"
    • methods 和 v-on的使用
  • v-bind:属性="表达式 || 函数"
    • 简写 => :属性
    • class 结合 v-bind使用
  • 特殊属性key :key = "变量值"

组件(components)

  • 全局组件

    • Vue.component(组件名,组件对象);
  • 子组件

    • components 一个对象; key是组件名,value是组件对象
  • props 一个数组,元素是字符串,

    • 作用:声明子组件接收参数的属性名
  • filter 一个对象; key(过滤器名),value(函数)

    • return最终显示结果
    • 调用方式:{{ 原数据 | 过滤器名(参数1...) }}
  • watch 监视数据

    • 一个对象; key(过滤器名),value(函数)

    • 默认监视基本数据类型的改变;

    • 复杂数据类型 (如:数组 | 对象)需深度监视

    • 深度监视(包含其属性):'hero': {deep:true, handler:fn(){}}

    • 注意:
      watch和页面change事件区别:

      1. change只能监测页面输入后的改变
      2. watch监视的变量的值的改变:
        • 页面改变会影响内存变量值改变;
        • 通过js代码修改 可以直接改变变量值
  • computed 是一个对象 (计算属性)

    • 增强版的watch,结合多个监视变量加入监视
    • key(计算属性的名称);value(函数)
    • return(显示结果)
父子组件属性
  • 父用子
    • 父: components: {组件名:组件对象}
    • 子接收父参数:props: ['属性名']
  • 父传子
    • 子:props: ['属性名']
    • 父: 通过属性名传递参数
      • 常量 属性名= "值"
      • 变量 属性名= "变量名"
    • 总结:子的数据 = props(是父给你的数据) + data(是自己的数据)
子向父组件通讯
  • 0- var vm = new Vue()
  • 1- :vm.$on('事件名', 回调函数(形参1, 形参2))
  • 2- :vm.$emit('事件名', 数据1, 数据2)
  • 补充
    • $once('事件名',fn) 只触发一次
    • $off('事件名') 关闭事件
全局API
  • 声明全局对象
    • Vue.components("组件名", "组件对象")
  • 全局过滤器
    • Vue.fileter(过滤器名,function(v,argv1,argv2){return 显示内容})
过滤器 (filter)
  • 对数据添油加醋,改变显示
  • 组件内声明过滤器组件内有效
    • filters: { 过滤器名:function( v, argv1, argv2){ return 显示内容;} }
  • 全局过滤器 (全局API有写到)
  • 调用过滤器
    • {{数据 | 过滤器名(参数1, 参数2)}}
  • 组件内过滤器与全局过滤器同名时,优先考虑组件内过滤器
组件生命周期
  • 钩子就是事件 (平时听到的 丢一个钩子就是注册一个事件)
  • beforeCreate 创建前(数据没有初始化,没有数据)
  • created 创建后(可以操作数据;适合操作数据; v-if="true"
  • beforeMount 装载前(没有装载数据到页面)
  • mounted 装载后 (数据已装载到页面;适合操作DOM)
  • beforeUpdate 更新数据前 (进行二次更新;不建议)
  • updated 更新数据后 (引起更新钩子函数触发;获取最新更新)
  • activated 激活组件 (结合 keep-alive v-if="true")
  • deactivated 组件停用 (结合 keep-alive v-if="false")
  • beforeDestroy 销毁之前 (v-if="false")
  • destroyed 销毁后 (v-if="false")
  • 注:keep-alive组件: 目的是缓存组件,减少频繁的创建销毁组件
    • data/methods/components/filter
获取DOM元素
  • 在元素上声明 ref= "xxx"
  • 在js中使用 this.$refs.span
  • js中能使用的地方是 mounted
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 1.安装 可以简单地在页面引入Vue.js作为独立版本,Vue即被注册为全局变量,可以在页面使用了。 如果希望搭建...
    Awey阅读 10,982评论 4 129
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,580评论 18 139
  • 模板语法 插值 Vue 2 提供了 v-once 指令进行一次插值,替代了 Vue 1 的 {{ * msg }}...
    云之外阅读 646评论 0 3
  • 安装vue migration工具 npm install -g vue-migration-helper vue...
    AlisaMfz阅读 607评论 0 0
  • 前几天因为一些事情心情不好就没来更,然后最近三天吃得可多啦,都是别人请去吃好的。 双下巴都有了! 好啦,今日早餐:...
    蜜糖Mito阅读 126评论 0 0