美文网首页
Vue学习笔记(一)基础部分

Vue学习笔记(一)基础部分

作者: 蛋黄有点咸 | 来源:发表于2020-06-22 17:48 被阅读0次

1.事件修饰符

.preven阻止默认事件触发;.once只执行一次;.stop阻止冒泡;.capture使用事件捕获模式;.self只有在 event.target 是当前元素自身时触发;.passive滚动事件的滚动行为将会立即触发 ,而不会等待 onScroll 完成。

使用修饰符时,顺序很重要:用 v-on:click.prevent.self 会阻止所有的点击,而 v-on:click.self.prevent 只会阻止对元素自身的点击。

2.双向数据绑定 v-model

用于 input /select / textarea

v-model.lazy懒监听:在 "change"事件中而不是 "input" 事件中更新

v-model.number 可以将 输入的值转化为Number类型 ,在数字输入框中比较有用

v-model.trim 自动过滤掉输入的首尾空格

3.ref

相当于DOM操作,在标签里添加ref="name(自定义名字)",同时绑定事件,在事件里通过this.$refs.name获取元素

4.watch

持续监听,耗费性能,适合调试时使用

watch: {
      a: function(val, oldVal){
            console.log( val, oldVal)
      }
}

5.计算属性computed

方法里面一定要有return;只有数据变化,才会更新

与methods比较:

1、computed是属性调用,methods是函数调用

2、computed有缓存功能,数据变化才会重新执行;methods只要调用就会执行,不论数据有无变化

注:两者都不应该使用箭头函数来定义计算属性,因为箭头函数绑定了父级作用域的上下文,所以this 将不会按照期望指向Vue;

对于任何复杂逻辑,都应当使用计算属性,利用实时信息时,比如显示当前进入页面的事件,必须用methods方式

6.动态绑定css

1、属性绑定:动态绑定css样式:v-bind:class=”{active:isActive}”,动态改变属性继而改变样式:v-on:click=”isActive=!isActive”;

2、计算属性绑定:动态绑定css样式:v-bind:class=”changeX”,computed:{ changeX(){return active:this.isActive} }

7.指令 v-if、v-show

v-if是“真正”的条件渲染,只在指令的表达式返回 true的时候被渲染;v-show 则不管初始条件是什么,元素总是会被渲染,并且只是简单地基于CSS 进行display切换。

如果需要非常频繁地切换,则使用v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

8.组件注册 component

全局组件:Vue.component('my-component-name', { /* ... */ }) ;在main.js中注册

全局注册 
Vue.component('component-a', { /* ... */ })
Vue.component('component-b', { /* ... */ })
new Vue({ el: '#app' })
 // 使用 这两个子组件在各自内部也都可以相互使用
<div id="app">
  <component-a></component-a>
  <component-b></component-b>
</div>

局部组件:Vue.component('my-component-name', { /* ... */ })

var ComponentA = { /* ... */ }
var ComponentB = { /* ... */ }
 // 在 components 选项中定义你想要使用的组件
new Vue({
  el: '#app',
  components: {
    'component-a': ComponentA,
    'component-b': ComponentB
  }
})

局部注册的组件在其子组件中不可用

 // 如果希望 ComponentA 在 ComponentB 中可用,则需要这样写:
var ComponentA = { /* ... */ }
var ComponentB = {
  components: {
    'component-a': ComponentA
  }
}
 // 或者:
import ComponentA from './ComponentA.vue'
export default {
  components: {
    ComponentA
  }
}

组件嵌套:引入->注册->调用

9.组件传值

1、父传子 props

// 父组件中 调用子组件的地方传递
<User :zdyUsers(自定义属性名)="users" />
//子组件user中 接收
props:["zdyUsers"]// 方式一
props:{// 方式二
  zdyUsers:{
    type:Array,
    required:true
  },
  zdyUsers2:{
    type:Array,
    required:true
  }
}

2、子传父 $emit 自定义事件

// 子组件中
changeTitle() {
  //注册事件  参数1:事件名   参数二:值 
  this.$emit(“titleChange”,"通过子组件修改了父组件的title值")
}
// 父组件中 
<Header @titleChange="updateTitle"  :title="title" /> //调用子组件的地方
methods: {
  updateTitle(updatedTitle) {
    this.title = updatedTitle //修改
  }
}

10.slot

// 父组件中
<div id="app">
  <Header> 
    <h2 slot="title">这里是title</h2>
    <p slot="text">这里是文本内容</p>
  </Header>
</div>
// 子组件中 接收
<div>
  <slot name="title"></slot>
  <h3>这里是原本的内容</h3>
  <slot name="text"></slot>
</div>

11.动态组件和缓存

<keep-alive>
  <component :is="componentId">
</keep-alive>
<button @click=" componentId='form-one' ">show one</button>
<button @click=" componentId='form-two' ">show two</button>

data(){
  return{
    componentId:"form-one"
  }
}

相关文章

  • Vue学习笔记(一)基础部分

    1.事件修饰符 .preven阻止默认事件触发;.once只执行一次;.stop阻止冒泡;.capture使用事件...

  • Vue 2.5 学习

    Vue 课程学习笔记 基础部分 方法创建在 method 的大括号里面 可以将 v-on:click 简写为 @c...

  • vue

    vue基础知识部分 扯淡前言 这个笔记是关于vue的所有重点基础知识,大部分配的有实例,这些实例都是我自己一个个敲...

  • 前端测试

    目录 目录 1. 前端基础1.1 布局1.1.1 grid布局 2. Vue 学习笔记2.1 Vue模板创建 前端...

  • Vue3 学习笔记 (基础)

    Vue3 学习笔记 (基础) 看视频学习的笔记,自用bilibili 尚硅谷禹神 setup 一切的开始 组建中所...

  • vue语法基础xmind

    最近在学习vue,结合官方的手册,整理了vue基础语法xmind(不包括进阶部分)

  • 学习Vue.js(2018-05-13)

    今天第一次学习Vue,刚学了一点基础,感觉还挺不错的。感觉Vue挺强大的,在听讲过程中做了一些笔记。学习了一些基础...

  • Linux基础学习笔记2 Shell

    Linux基础学习笔记2 Shell 本文发布于博客frankwtq 这是Linux基础学习笔记的第二部分,主要介...

  • vue入门--week1

    vue学习笔记,比较基础。 mvc 和mvvc的区别 mvc是后端概念:model、view、controller...

  • vue学习笔记:一、vue基础语法

    1、模板语法 Mustache语法:{{ msg }} Html赋值:v-html=“” 绑定属性:v-bind:...

网友评论

      本文标题:Vue学习笔记(一)基础部分

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