vue常用知识点

  1. vue中图片路径写法
             <img :src="avatorSrc" alt="">
             <img :src="avatorSrc2" alt="">
        data:function(){
            return {
                avatorSrc:"https://p.ssl.qhimg.com/dmsmty/74_100_100/t01073ee43c0b8459e4.webp",
                avatorSrc2:require("../../assets/avator.png"),//图片在本地
            }
        }

  2.代码中实现路由跳转

<el-menu-item index="1-1" @click="goRouter('/workbench/Needs')">needs</el-menu-item>
<el-menu-item index="1-2" @click="goRouter('/workbench/Risk')">risk</el-menu-item>


// 路由跳转
Vue.prototype.goRouter = function(path){
  this.$router.push(path);
}

 3.路由拦截设置页面title

// 路由拦截设置页面title
router.beforeEach((to,from,next)=>{
  if(to.name){ // name 在 路由中配置
    window.document.title = to.name;
  }
  next();
})

 

<think>我们正在学习或复习Vue.js框架的核心知识点。根据提供的引用内容,我们可以总结出以下几个核心知识点:1.Vue实例与数据绑定2.Vue.js的数据观测原理(基于依赖收集的观测机制) 3.列表渲染指令v-for的使用4.双向绑定v-model5.其他前端知识(如元素垂直居中方法)但这不是Vue专属由于用户要求总结Vue.js核心知识点,我们将重点放在Vue本身。同时,根据引用[1][2][3]的内容,我们可以组织如下:### Vue.js核心知识点总结####1.Vue实例与数据绑定每个Vue应用都是通过创建一个新的Vue实例开始的。Vue实例是Vue应用的根,它连接着数据与DOM。 ```javascriptvar vm= newVue({//选项}) ```在创建Vue实例时,我们可以传入一个选项对象,包括数据、模板、挂载元素、方法、生命周期钩子等。其中,数据绑定是Vue的核心特性之一,通过数据绑定,我们可以将数据与DOM元素进行关联,实现数据驱动视图。 ####2.数据观测原理Vue.js的数据观测原理基于ES5的`Object.defineProperty`,通过定义存储器属性(getter和setter)来实现。当数据被访问时,会触发getter,将当前观察者(Watcher)添到依赖中;当数据被修改时,会触发setter,通知所有依赖进行更新,从而保证数据和视图的一致性。这种机制称为**基于依赖收集的观测机制**。由于使用了ES5的特性,Vue.js不支持IE8及以下版本。####3.列表渲染 -v-for指令`v-for`指令用于遍历数组或对象,生成动态内容。在遍历数组时,可以获取每一项及其索引;遍历对象时,可以获取值、键和索引。```html<template><!--遍历数组 --><div v-for="(item, index) initems":key="index">{{ item.name }}</div><!--遍历对象 --><div v-for="(value, key) inobject":key="key">{{ key}}:{{ value}}</div> </template><script>export default{data(){return {items: [{name:'张三'},{name: '李四'}],object: {title: '标题',author: '作者'}}}} </script>``` 注意:使用`v-for`时,必须为每一项绑定一个唯一的`key`属性,以便Vue能够高效地更新DOM。 ####4.双向绑定- v-model`v-model`指令用于在表单输入元素(如input、textarea、select)上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。```html<inputv-model="message" placeholder="editme"><p>Message is: {{message }}</p>``` 在内部,`v-model`实际上是语法糖,它负责监听用户的输入事件以更新数据,并对一些边界情况进行特殊处理。 ####5.计算属性和侦听器除了直接绑定数据,Vue还提供了计算属性(computed)和侦听器(watch)来处理复杂逻辑。 -**计算属性**:基于它们的依赖进行缓存,只在相关依赖发生改变时才会重新求值。 -**侦听器**:当需要在数据变化时执行异步或开销较大的操作时,使用侦听器。####6.组件系统Vue的组件系统是其核心功能之一,允许我们将UI拆分为独立可复用的代码片段。每个组件都是一个Vue实例,可以有自己的模板、数据、方法等。####7.生命周期钩子Vue实例在创建、挂载、更新和销毁的过程中会触发一系列生命周期钩子函数,如`created`、`mounted`、`updated`、`destroyed`等,允许我们在特定阶段执行自定义逻辑。 以上是Vue.js的一些核心知识点。当然,Vue还包括指令、事件处理、条件渲染、插槽、路由、状态管理等更多内容,但以上几点是基础中的基础。 §§相关问题§§1. Vue.js的响应式原理具体是如何实现的? 2.为什么在v-for中必须使用key属性?3.Vue组件之间如何通信? 4. Vue的生命周期钩子函数有哪些?分别在什么时候调用?</think>### Vue.js 核心知识点总结 #### 一、Vue 实例与数据绑定 1. **创建 Vue 实例** 通过 `new Vue()` 初始化应用,`el` 指定挂载元素,`data` 定义响应式数据: ```javascript const app = new Vue({ el: '#app', data: { message: 'Hello Vue!' } }) ``` 2. **响应式原理** Vue 基于 `Object.defineProperty` 实现数据观测: - 通过 **getter/setter** 拦截属性访问 - 建立 **依赖收集机制**,数据变化时自动更新视图 - 仅兼容 IE9+ 浏览器[^2] #### 二、模板语法与指令 1. **插值表达式** ```html <div>{{ message }}</div> <!-- 动态绑定数据 --> ``` 2. **常用指令** - `v-bind`:动态绑定属性(缩写 `:`) ```html <img :src="imageUrl"> ``` - `v-model`:**双向数据绑定**(表单元素) ```html <input v-model="username"> ``` - `v-if/v-show`:条件渲染 ```html <p v-if="isVisible">显示内容</p> ``` 3. **列表渲染 `v-for`** 遍历数组或对象时**必须指定 `:key`** 以提高性能: ```html <!-- 遍历数组 --> <div v-for="(item, index) in items" :key="index"> {{ item.name }} </div> <!-- 遍历对象 --> <div v-for="(value, key) in object" :key="key"> {{ key }}: {{ value }} </div> ```[^3] #### 三、计算属性与侦听器 1. **计算属性 (computed)** 缓存计算结果,依赖变化时自动更新: ```javascript computed: { fullName() { return this.firstName + ' ' + this.lastName; } } ``` 2. **侦听器 (watch)** 监听数据变化执行异步操作: ```javascript watch: { searchQuery(newVal) { this.fetchResults(newVal); // 搜索请求 } } ``` #### 四、组件系统 1. **组件定义** 单文件组件(.vue)结构: ```html <template> <div>{{ title }}</div> </template> <script> export default { props: ['title'], // 接收父组件数据 data() { return { localData: 1 } } } </script> ``` 2. **组件通信** - **父 → 子**:通过 `props` 传递数据 - **子 → 父**:通过 `$emit` 触发事件 - **兄弟组件**:使用 Vuex 或 Event Bus #### 五、生命周期钩子 核心生命周期函数: ```mermaid graph LR A[创建] --> B(beforeCreate) B --> C(created) --> D(beforeMount) D --> E(mounted) --> F[更新] F --> G(beforeUpdate) --> H(updated) H --> I[销毁] --> J(beforeDestroy) --> K(destroyed) ``` - **mounted**:DOM 渲染完成,可访问 DOM 元素 - **updated**:数据变化导致 DOM 重新渲染后 - **beforeDestroy**:组件销毁前清理定时器/事件[^1] #### 六、进阶特性 1. **Vue Router**:实现 SPA 路由跳转 2. **Vuex**:集中式状态管理 3. **插槽 (Slot)**:组件内容分发 4. **混入 (Mixin)**:复用组件逻辑 > 关键设计思想:**ViewModel 层**保证数据与视图的一致性,通过**数据驱动视图**减少 DOM 操作[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值