IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue基础复习 -> 正文阅读

[JavaScript知识库]vue基础复习

mvvm

? ? ? ? model:?模型

????????view:视图

????????viewmodel :与视图对应的model

? ? ? ? 模型和视图并没有直接关联,而是通过viewmodel来处理的。model和viewmodel是双向绑定的,viewmodel和view也是双向绑定的,所以当model中数据发生变化时,会同步更新view中,反之view中界面数据发生变化时也会更新model。

vue双向绑定原理

? ? ? ? 核心就是用Object.defineproperty数据劫持?结合? 发布订阅模式?来实现的。当数据发生变化时更新视图,视图变化时改变数据。

什么是vue

? ? ? ? Vue是用于构建用户界面的渐进式框架,Vue的核心库只关注视图层,更易上手。

Vue的指令

? ? ? ? v-text? ?用来将数据填充到标签中

<span v-text="msg"></span>
<!-- 和下面的一样 -->
<span>{{msg}}</span>

? ? ? ? v-html? ?类似v-text,将html填充到标签中

? ? ? ? v-show?显示或者隐藏元素,相当于css的display: none

? ? ? ? v-if? / v-else-if / v-else? ? ? 效果等同于v-show,不同点是v-if条件为真时才会渲染。

? ? ? ? v-for? ? ?循环渲染。当和v-if一起使用时,v-for优先级更高。常常需要绑定key值。

? ? ? ? v-on? ? ?绑定事件监听。缩写@

<!-- 方法处理器 -->
<button v-on:click="doThis"></button>

<!-- 动态事件 (2.6.0+) -->
<button v-on:[event]="doThis"></button>

<!-- 内联语句 -->
<button v-on:click="doThat('hello', $event)"></button>

<!-- 缩写 -->
<button @click="doThis"></button>

<!-- 动态事件缩写 (2.6.0+) -->
<button @[event]="doThis"></button>

<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>

<!-- 阻止默认行为 -->
<button @click.prevent="doThis"></button>

<!-- 阻止默认行为,没有表达式 -->
<form @submit.prevent></form>

<!--  串联修饰符 -->
<button @click.stop.prevent="doThis"></button>

<!-- 键修饰符,键别名 -->
<input @keyup.enter="onEnter">

<!-- 键修饰符,键代码 -->
<input @keyup.13="onEnter">

<!-- 点击回调只会触发一次 -->
<button v-on:click.once="doThis"></button>

<!-- 对象语法 (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>

/************************************************/
// 在子组件上绑定事件,当子组件调用my-event时触发
<my-component @my-event="handleThis"></my-component>

? ? ? ? v-bind? 属性绑定

<!-- 绑定一个 attribute -->
<img v-bind:src="imageSrc">

<!-- 动态 attribute 名 (2.6.0+) -->
<button v-bind:[key]="value"></button>

<!-- 缩写 -->
<img :src="imageSrc">

? ? ? ? v-model? ?双向绑定,仅限在input / select / textarea / components中使用

? ? ? ? v-pre? ? 跳过这个节点和他的子节点,不需要编译。

? ? ? ? v-solt? ? 提供具名插槽

? ? ? ? v-once? 只渲染一次

自定义指令

? ? ? ? Vue.directive

key的作用

? ? ? ? 给每个项添加一个key,以便跟踪每个节点的变化,让数据更高效的渲染。如果不添加key,那么如果数据顺序发生改变,vue不会移动数据项的顺序,而是就地更新每个元素,确保在每个索引位置正确渲染。

计算属性computed

? ? ? ? 当模板中不再是简单的声明,需要复杂的表达式时可以用计算属性。

? ? ? ? 计算属性是基于它们的响应式依赖进行缓存的,只有相关响应式依赖发生改变时,才会重新求值,所以多次访问计算属性时,如果数据没有改变会立马返回值。

<div id="app">
        <div>{{ reverse }}</div>
    </div>
    <script>
        new Vue({
            el: '#app',
            data: {
                name: 'zhangsan'
                
            },
            computed: {
                reverse() {
                    return this.name.split('').reverse().join('')
                }
            }
        })

    </script>

watch

? ? ? ? 监听数据变化,有两个参数,第一个是新值,第二个是旧值。一般用于异步操作。

<script>
        new Vue({
            el: '#app',
            data: {
                name: 'zhangsan',
                msg: ''
                
            },
            computed: {
                reverse() {
                    return this.name.split('').reverse().join('')
                }
            },
            watch: {
                msg: function(newmsg, oldmsg) {
                    console.log('新值:'+ newmsg)
                    console.log('旧值:'+ oldmsg)
                }
            }
        })

    </script>

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:19:49  更:2021-08-10 13:20:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 9:50:56-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码