美文网首页
2019-06-29 Vue

2019-06-29 Vue

作者: 々_18C | 来源:发表于2019-06-30 08:22 被阅读0次

    官网

    1)英文官网: https://vuejs.org/

    2)中文官网: https://cn.vuejs.org/

    Vue特点

    1)遵循 MVVM 模式

    2)编码简洁, 体积小, 运行效率高, 适合移动/PC 端开发

    3)它本身只关注 UI, 可以轻松引入 vue 插件或其它第三方库开发项目

    与其它前端 JS 框架的关联

    1)借鉴 angular 的模板和数据绑定技术

    2)借鉴 react 的组件化和虚拟 DOM 技术

    模板语法

    模板的理解

    1)动态的 html 页面

    2)包含了一些 JS 语法代码

    a.双大括号表达式

    b.指令(以 v-开头的自定义标

    双大括号表达式

    1)语法: {{exp}}

    2)功能: 向页面输出数据

    3)可以调用对象的方法

    指令一: 强制数据绑定

    1)功能: 指定变化的属性值

    2)完整写法:

    v-bind:xxx='yyy' //yyy 会作为表达式解析执行

    3)简洁写法:

    :xxx='yyy'

    .指令二: 绑定事件监听

    1)功能: 绑定指定事件名的回调函数

    2)完整写法:

    v-on:keyup='xxx'

    v-on:keyup='xxx(参数)' v-on:keyup.enter='xxx'

    3)简洁写法:

    @keyup='xxx' @keyup.enter='xxx'

     计算属性和监视

     计算属性

    1)在 computed 属性对象中定义计算属性的方法

    2)在页面中使用{{方法名}}来显示计算的结果

    常用内置指令

    1)v-text : 更新元素的 textContent

    2)v-html : 更新元素的 innerHTML

    3)v-if : 如果为 true, 当前标签才会输出到页面

    4)v-else: 如果为 false, 当前标签才会输出到页面

    5)v-show : 通过控制 display 样式来控制显示/隐藏

    6)v-for : 遍历数组/对象

    7)v-on : 绑定事件监听, 一般简写为@

    8)v-bind : 强制绑定解析表达式, 可以省略 v-bind

    9)v-model : 双向数据绑定

    10)ref : 指定唯一标识, vue 对象通过$refs 属性访问这个元素对象

    11)v-cloak : 防止闪现, 与 css 配合: [v-cloak] { display: none }

    1)v-text : 更新元素的 textContent

    2)v-html : 更新元素的 innerHTML

    3)v-if : 如果为 true, 当前标签才会输出到页面

    4)v-else: 如果为 false, 当前标签才会输出到页面

    5)v-show : 通过控制 display 样式来控制显示/隐藏

    6)v-for : 遍历数组/对象

    7)v-on : 绑定事件监听, 一般简写为@

    8)v-bind : 强制绑定解析表达式, 可以省略 v-bind

    9)v-model : 双向数据绑定

    10)ref : 指定唯一标识, vue 对象通过$refs 属性访问这个元素对象

    11)v-cloak : 防止闪现, 与 css 配合: [v-cloak] { display: none }

    自定义指令

    注册全局指令

    Vue.directive('my-directive', function(el, binding){ el.innerHTML = binding.value.toupperCase()

    })

    2)注册局部指令

    directives : {

    'my-directive' : {

    bind (el, binding) {

    el.innerHTML = binding.value.toupperCase()

    }

    }

    }

    3)使用指令

    v-my-directive='xxx'

    注册全局指令

    Vue.directive('my-directive', function(el, binding){ el.innerHTML = binding.value.toupperCase()

    })

    2)注册局部指令

    directives : {

    'my-directive' : {

    bind (el, binding) {

    el.innerHTML = binding.value.toupperCase()

    }

    }

    }

    3)使用指令

    v-my-directive='xxx'

    类与样式

    class 与 style 绑定

    class 绑定

    1):class='xxx'

    2)表达式是字符串: 'classA'

    3)表达式是对象: {classA:isA, classB: isB}

    4)表达式是数组: ['classA', 'classB']

    style 绑定

    1):style="{ color: activeColor, fontSize: fontSize + 'px' }"

    2)其中 activeColor/fontSize 是 data 属性

    事件处理

     绑定监听:

    1)v-on:xxx="fun"

    2)@xxx="fun"

    3)@xxx="fun(参数)"

    4)默认事件形参: event

    5)隐含属性对象: $event

     事件修饰符

    1).prevent : 阻止事件的默认行为 event.preventDefault()

    2).stop : 停止事件冒泡 event.stopPropagation()

     按键修饰符

    1).keycode : 操作的是某个 keycode 值的键

    2).keyName : 操作的某个按键名的键(少部分)

    父子组件通信

    组件间通信基本原则

    1)不要在子组件中直接修改父组件的状态数据

    2)数据在哪, 更新数据的行为(函数)就应该定义在哪

    此方式用于父组件向子组件传递数据

    2)所有标签属性都会成为组件对象的属性, 模板页面可以直接引用

    3)问题:

    a.如果需要向非子后代传递数据必须多层逐层传递

    b.兄弟组件间也不能直接 props 通信, 必须借助父组件才可以

    相关文章

      网友评论

          本文标题:2019-06-29 Vue

          本文链接:https://www.haomeiwen.com/subject/ijeucctx.html