Vue学习总结(一)

本文是Vue学习的总结,涵盖了Vue的特点、实例化参数、计算属性、监听、自定义指令、过滤器、内置组件、动画及组件复用等核心概念,详细介绍了各个特性的用法和应用场景。

概述

Vue是一款渐进式的javescript前端框架,作者是尤雨溪,官网:cn.vuejs.org

特点:1.简单,上手方便

2.结合angular指令与react思维

3.生态丰富(插件多)API文档完善

实例化参数(new Vue)

el:"#app"选择目标标签

data:{}

data(){return{}}

指定数据

一个函数返回一个对象

methods方法集合
computed计算
watch监听

计算(computed):从现有数据计算出新的数据

computed:{
    rmsg:{
    return this.msg.split("").reverse().join('')
    }
}

监听(watch):监听数据的变化,并执行回调函数handler

watch:{
    "ber":{
        handler(navl,oval){},
        deep:true
    }
}

自定义指令(directives)

bind绑定执行一次     insert插入执行一次   update每更新执行一次

directives:{
    "v-sosn":{
           update(el,binding){
                 if(binding.value){el.focus()
                 }
           }
    }
}

过滤(管道):格式化数据

使用方式:1.{{ber|tas}}

2.{{ber|tas(2)}}

3.v-text="der|tas"

filters:{
    tas(value,arg){
            return value.toFixed(arg)
    }
}

指令:指令的值可以是简单的JavaScript命令

  1. 文本渲染指令
    {{}}
    v-text
    v-html
  2. 属性绑定指令
    v-bind:属性="指令值"
    :属性="值"
  3. 条件渲染

    v-show

    (通过css的方式隐藏节点;频繁切换时使用;)

    v-if

    (一次性切换使用)

    v-else
    v-else-if
  4. 列表渲染

    v-for="iten in list"

    list是要遍历的数组

    item为当前遍历的项目

    v-for="(item,index) in list"index为当前遍历项的索引(从0开始)

    使用v-for最好加上v-bind:key=""或者是:key="值"

    值必须唯一;添加key属性可以优化v-for的渲染,让Vue更好识别当前渲染的节点。特别是在排序、过滤等操作时;不建议key的值使用循环的索引

  5. 事件指令

    v-on:事件类型="响应函数"

    v-on:click="sue()"

    @click="sue()"

    事件的简写

    @click="num++"

    行内事件响应

    事件修饰符:.stop阻止事件冒泡   .prevent阻止默认事件   .once只执行一次   

    @click.stop.prevent.once="num++"   (事件的修饰符可以同时写多个)

    按键修饰符: .up  .down  .left  .right    .space    .enter   .delete  .esc    ....
    事件对象: $event
  6. 表单绑定指令

    v-model让表单的值与数据绑定在一起
    <input   type="checkbox">

    <input   type="checkbox"

    name="fu"

    v-model="list">

    如果是多个选项把选中的值动态地添加到list数组中
    修饰符:   .number数字    .trim移除两端空白
  7. 类绑定

    属性     :class="值"

    对象    :class="{'key1':true,'key2':false}"

    key1的值为真,key1会被绑定,key2不会绑定

    当对象的属性值为真,该属性作为class绑定

    数组   :class="a1,a2,a3"
  8. 样式绑定

    :style="{color:'red','fontSize':'36px'}"

动画

Vue动画在内置组件transition的包裹下;会自动在动画的进入过程与离开过程添加类名

内置组件

  1. transition
    name名称
    mode模式
    in-out先进再出
    out-in先出再进
    enter-active-class指定进入类名
    leave-active-class指定离开类名
  2. transition-group

动画类

  • v-enter-active   进入过程
  1. v-enter   进入前
  2. v-enter-to   进入后
  • v-leave-active   离开过程
  1. v-leave   离开前
  2. v-leave   离开后

创建动画形式

  • 动画类六个class创建
enter-active-class
enter
enter-to
leave-active-class
leave
leave-to
  • keyframes关键帧
​// 01
.fade-enter-active{animate:fadeIn 1s ease}

//02
.fade-enter-active{animate:fadeOut 1s ease}

​
  • 引用第三方动画库:指定进入的class与离开的class
<transition  enter-active-class="slideIn  aimated"   leave-active-class="hinge aimated"></transition>

组件:一段可以重复利用的代码块

Vue.component("组件名",{template:``})全局组件
const steper = {template:``}局部组件
new Vue({
        components:{steper}
})
注册组件
<steper></steper>使用组件
### Vue3 学习资料总结与最佳实践 #### 1. 创建 Vue3 项目 Vue3 提供了多种方式来初始化项目,推荐使用 Vite 或 Vue CLI。Vite 是基于 ESBuild 和 Rollup 的新代构建工具,能够显著提高开发体验和性能[^1]。 ```bash npm create vite@latest my-vue-app --template vue cd my-vue-app npm install npm run dev ``` #### 2. Composition API 基础 Composition API 是 Vue3 中的核心改进之,它允许开发者通过逻辑关注点而不是组件生命周期来组织代码。`setup` 方法作为入口,提供了 `reactive`, `ref`, `computed`, `watch` 等核心方法[^1]。 - **Reactive**: 使用 `reactive` 定义响应式对象。 - **Ref**: 对单个值进行响应式处理。 - **Computed**: 计算属性用于派生数据。 - **Watch**: 监听状态的变化并执行副作用。 ```javascript import { reactive, computed, watch } from 'vue'; export default { setup() { const state = reactive({ count: 0 }); const doubleCount = computed(() => state.count * 2); watch( () => state.count, (newVal) => console.log(`count changed to ${newVal}`) ); return { state, doubleCount }; } }; ``` #### 3. 响应式系统的升级 相较于 Vue2,Vue3 的响应式系统更加高效且灵活。通过 Proxy 替代 Object.defineProperty,实现了深层次的对象拦截和支持 Symbol 属性的监听[^1]。 #### 4. 自定义 Hook 函数 为了增强代码复用性和可维护性,Vue3 推荐使用自定义 Hook 来封装通用逻辑。Hook 名称通常以 `use` 开头,并具有清晰的功能描述[^3]。 ```javascript // useCounter.js import { ref, onMounted } from 'vue'; export function useCounter(initialValue = 0) { const counter = ref(initialValue); const increment = () => (counter.value += 1); const decrement = () => (counter.value -= 1); onMounted(() => console.log('Counter initialized')); return { counter, increment, decrement }; } ``` #### 5. Tree-Shaking 技术解析 Tree-shaking 是种优化技术,旨在移除未使用的代码片段,从而减小最终打包文件大小。Vue3 设计之初就考虑到了这需求,通过模块化的架构和静态导入/导出语句的支持,使得 Tree-shaking 成为可能[^2]。 ##### 实战配置建议 - 使用 Webpack 或 Vite 进行深度配置。 - 尽量采用按需加载的方式引入依赖项。 - 利用插件(如 `babel-plugin-component`)实现样式分离。 #### 6. 国际化支持 Vue3 结合 `vue-i18n-next` 插件提供强大的国际化解决方案。借助 Composition API,可以轻松管理多语言环境下的文本翻译[^4]。 ```html <template> <div> <h1>{{ t('auth.login') }}</h1> <button @click="showMessage">{{ t('common.confirm') }}</button> <!-- 切换语言 --> <select v-model="locale"> <option value="zh-cn">中文</option> <option value="en-us">English</option> </select> </div> </template> <script setup lang="ts"> import { useI18n } from 'vue-i18n'; const { t, locale } = useI18n(); function showMessage() { console.log(t('common.save')); } </script> ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值