记录vue学习的笔记

Vue框架的基础模板


  • 导入vue模板

  • 创建vue的实例对象

  • el属性是固定的写法,表示当前的vm实例要控制页面上的那个区域,接受的值是一个选择器

  • data对象就是要渲染到页面上的数据

const vm = new Vue({

el:控制对象,

data: {}

})

Vue的指令


1.内容渲染指令
  1. v-text

  • v-text缺点是覆盖文本内容默认值

  1. { { }}(常用)

  • 插值表达式(Mustache),解决文本内容被覆盖问题

  1. v-html

  • 可以把带标签的字符串,渲染成真正的html内容!

2.属性绑定指令(常用)

注意:插值表达式只能用在元素的内容节点中,不能用于属性节点

  • v-bind: 可以简写成 :,经常使用,作用是为元素的属性动态绑定值

  • 在使用v-bind属性绑定期间,如果绑定内容需要进行动态拼接,则字符串需要用单引号包裹,例如:

<div:title="'box'+index">这是一个盒子</div>

3.事件绑定
  • v-on:

  • v-on: 可以用@代替,处理函数可以用add(n)进行传参

  • 原生dom对象onclick,oninput,onkeyup等转变成 @click、@input、@keyup等

4.事件对象
  • vue中提供了一个原生dom的变量名称$event,

  • <button v-on:click="add(2, $event)">+n</button>

  • add (n, e) {
    // vm === this
    // console.log(vm === this); true
    this.count += n;
    console.log(e);
    if(n % 2 === 0){
    // e.target指向当前的+n button
    e.target.style.backgroundColor = 'red';
    }
    },

5.事件修饰符
  • 在vue里面,提供了事件修饰符,就是在绑定事件后面添加修饰符

  • e.preventDefault(); 变成 .prevent

  • <divid="app">
    <ahref="www.baidu.com"@click.prevent="show">跳转百度页面</a>
    </div>
    <script>
    const vm = new Vue({
    el: '#app',
    data: {
    },
    methods: {
    show (e) {
    //e.preventDefault();// 原生态dom写法
    console.log('点击a标签了');
    }
    }
    })
    </script>

  • e.stopPropagation(); 变成 .stop

6.按键修饰符
  • @keyup. 方法,判断详细的按键,可以为键盘相关的事件添加按键修饰符

  • <!-- 当按下键盘esc时,清空输入内容 vm.clearInput() -->
    <!-- 当按下键盘enter时,执行发送请求 vm.submit -->
    <inputtype="text"@keyup.enter="submit"@keyup.esc="clearInput">

    // script模块内容
    const vm = new Vue({
    // el属性是固定的写法,表示当前的vm实例要控制页面上的那个区域,接受的值是一个选择器
    el: '#app',
    // data对象就是要渲染到页面上的数据
    data: {
    },
    methods:{
    clearInput(e){
    console.log(e);
    e.target.value = '';
    },
    submit(e){
    console.log('发送Ajax请求');
    }
    }
    })

7.双向绑定
  1. v-model指令

  • vue提供了v-model双向数据绑定指令,用来辅助开发者在不操作dom的前提下快速获取表单的数据

  • 所有的表单数据类型都可以使用v-model,常见的有以下几个:

  1. input输入框

  • type="radio"

  • type="checkbox"

  • type="text"

  • ...

  1. textarea

  1. select

  1. v-model指令的修饰符

  • 为了方便用户输入的内容进行处理,vue为v-model指令提供了三个修饰符,分别是:

  1. .number 自动将用户的输入值转为数值类型

  1. .trim 自动过滤用户输入的首位空白字符

  1. .lazy 在“change”时而非“input”时更新(可以理解为当用户停止输入,值输入完毕之后)

8.条件渲染指令
  1. v-if

  • 原理:动态为元素添加或移除display:none样式,来实现元素的显示和隐藏

  1. v-show

  • 原理:每次动态创建或移除元素,实现元素的显示和隐藏

  1. 两者同异

  • 同:都能实现页面的元素隐藏和显示,使用true or false进行控制

  • 异:刚进页面时,某些元素默认不需要被展示,而且后期也可能不需要被展示出来,使用v-if性能会更好;如果要频繁切换元素的显示状态,用v-show性能会更好

  1. v-else-if

  • 与v-if配套使用(比较少用到,除了要处理复杂选项)

  1. v-else

  • 与v-if配套使用,不需要进行判断直接写

9.列表渲染指令v-for
  1. v-for

  • 基于一个数组来循环渲染一个列表结构

  • 需要使用 item in items 形式的特殊语法,items是待循环的数组,item是被循环的每一项

  • <!-- 注意 item in list 里面 item不一定叫item可以是其他的名字,list是data里面数组的名字(所以要根据数组名字变化) -->
    <!-- (item,index) in list 可以动态生成索引号(index),注意index也可以叫其他的名字 -->
    <!-- 使用v-for的时候加上:key="item.id" 保证数据的唯一性 -->
    <trv-for="(item,index) in list":key="item.id">
    <td>{ { index }}</td>
    <td>{ { item.id }}</td>
    <td>{ { item.name }}</td>
    </tr>

    data:{
    list:[
    { id: 1, name: '张三'},
    { id: 2, name: '李四'},
    ]
    },

  • 使用v-for的时候,一定要在后面加上key属性,最好使用数组其中的id作为key

  • key的值只能是字符串或数字类型

  • 使用idex的值当作key的值没有任何意义,index的值不具有唯一性

过滤器filters(vue3.0已经剔除)


1.私有过滤器
  1. { { 需要过滤的值 | 过滤器名称(返回的是过滤器中的值) }}

  1. //等待渲染的地方
    <p>{ { message | capitalize }}</p>

// 过滤器和el,data同级

filters:{

/* 过滤器的注意点

1.过滤器必须要有return值,{ {}}里面渲染的是capitalize的返回值

2.过滤器的参数val

3.过滤器本质是函数

*/

// capitalize: function(){}等价于下面

capitalize(val){

const first = val.charAt(0).toUpperCase();

const other = val.slice(1);

return first+other;

}

2.全局过滤器
  1. 全局过滤器是使用Vue.filter,没有s

  1. 使用的格式是

  • Vue.filter('过滤器的名字',function(val){ return ... })

3.过滤器的注意点:
  • 要定义到filters节点,本质是一个函数

  • 在过滤器的形参中,一定要有return值

  • 在过滤器的形参,就可以获取到 “ 管道符| ”前面待处理的那个值

  • 如果全局过滤器和私有过滤器名字一致,此时按照"就近原则",调用的是"私有过滤器"

监听器watch( 异步函数的一种解决方案,异步操作等)


1.监听器的本质是一个函数,方法格式的监听器
  • 缺点1:无法在进入的时候自动触发

  • 缺点2:无法监听属性的变化

  • 想要使用方法监听器 监听对象的子属性变化,需要使用单引号 ‘info.username’ 进行命名函数

  • watch:{
    // 监听器的本质是一个函数
    // 新值在前 旧值在后
    username(newVal, oldVal){
    $.get('

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAFE_feng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值