Vue学习(一)

前端#

  • 逻辑
  • 事件
    -浏览器事件window,dom
    -dom事件:曾,删,遍历,修改节点元素内容
    -jquery
  • 视图
    -htmL
    -css,css预处理器(SASS,LESS,其中less够后端使用了).
    -框架bootstrap,
    -vue(soc 关注点分离原则separation of concern),vue关注视图层]
    -页面跳转: vue-router
    -状态管理: vuex
    -vue ui: elementui,飞冰
  • 通信
    -xhr,原生实现
    -ajax
    -axios.

Vue

核心是dom监听和数据绑定.

常用属性:#

el,template,methods,data,watch,render,computed.
MVVM模式

特性#

vue-element-admin
计算

常用指令#

前端核心: 后端数据的刷新显示或者判断是否显示,部分数据为固定显示(比如logo)

绑定:#

v-bind 绑定数据到指定的dom元素.
<span v-bind:title="message">{{ message }}</span>

渲染:#

v-if v-else-if v-else,搭配动态显示标签
<span v-if="Ok" v-bind:title="Ok">{{ message }}</span>
v-for 循环展示数据.

<li v-for="(arr,index) in arrays">{{index+1}}-{{arr.message}}</li>

事件处理#

v-on:click="sayHi",绑定函数到button.可以绑定多种事件.

双向绑定#

v-model="message"
和radio,text,textarea,select,checkbox绑定.

Vue组件#

自定义组件
vue.component("name",{
props:['param'],
template: 'xx'
})

异步通信axios#

钩子函数
axios.get('/get').then(response=>(this.info=response.data))

计算属性#

1.可以想象成缓存,data中的属性刷新前,值不变.
2.类似与属性操作
3.不能与methods中的方法重名.

插槽slot#

v-bind缩写:
v-on缩写@

自定义时间内容分发#

以删除数组的某个元素为例:

  1. 自定义时间 @remove,事件名最好使用小写,或者带上连字符
  2. 组件内部methods方法调用this.$emit('remove-item',index);
  3. 监听到时间后调用外部vue对象的方法,实现删除操作.

webpack使用#

插值语法: {{}},用于操作标签体
指令语法: v-for等等, 标签属性,事件
v-model用户表单类标签,有输入的value.(如input,单选,多选,选择框,多行输入),不能绑定没有输入的标签.v-model默认收集的是value值,可以简写为v-model=""

Vue实例#

vm.$mount('#root') 可以实现延时加载,更灵活一些
data的两种写法,推荐函数式写法

  1. 由vue管理的函数,不要写成箭头函数,一旦写了,this就不是vue实例了.
    data:{},
    data(){
    return{
    name: ''
    }
    }

mvvm架构#

image

vue数据代理#

object.defineproperty(obj,'age') 增加属性,并配置
enumerable,writable,configurable(默认全是FALSE)

getter和setter定义以及使用.
get(){

}
set(){

}
image

数据代理:

事件修饰符#

vue的事件修饰符
image

事件捕获->事件冒泡, 默认在冒泡阶段处理事件

键盘事件#

@keyup 或者@keydown, 常用前者
绑定关机键登录,天才啊-^^-

tab键比较特殊,特然就是失去焦点,所以需要搭配keydown使用,可以链式调用
如果想要ctrl+y, 可以用@keyup.ctrl.y
image

计算属性:#

相比methods更好用高效.
image
简写方式: 只读取,不修改
image

监视属性#

image

写法一:
watch:{
name:{
immediate: true, //为TRUE时,立即调用handler函数
handler(newvalue,oldvalue){
被监视的属性改变时,调用此函数
可以监视计算属性
}
}
}
写法二:
创建vue实例
vue.$watch('name',{监视对象})

深度监视:
deep: true,
image
简写形式:
不需要immdiate,deep属性时可以简写.
箭头函数会让this的指向发生变化
computed依靠返回值
watch亲自操作属性,不用返回值
settimeout 开启异步任务

计算属性和监视属性对比:

image

动态绑定样式#

动态绑定class样式的几种写法
image
:class 绑定class到指定属性, 同时div可以有默认属性.
vm.arr.shift(),移除数组第一个元素
vm.arr.push()插入一个元素
动态绑定style样式
image
样式对象: 注意key不能写错,需要对照原生js css属性做小驼峰转换
image

条件渲染#

v-if="布尔值的表达式",删除不显示的元素,通常性能略低,
v-show display:none.
template 模板标签,最终不会呈现在html上,只能与v-if搭配使用.
v-if修饰的元素可能获取不到,v-show一定可以获取

列表渲染#

v-for :key="p.id", key必须保证不同,通常用id或index
遍历数组:
遍历对象:
遍历字符串
遍历指定次数: 从自然数1开始,如(a,b) in 5

列表过滤#

p标签会前后各空出一行.span不会.
数组filter方法. indexof包含返回字符在字符串中的位置.空字符返回0
不要直接修改原数据.
watch: {
keyword:{
immediate: true,
handler(val){
逻辑实现
}
}
}

列表排序#

使用computed计算属性.

posted @   春江天一色  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示
主题色彩