【vue】实训总结

2021年12月31日
一、vue:前端框架
   其特性体现:数据驱动试图、双向数据绑定
二、vue的指令:
   ①{{}}语法-插值表达式:优点是不会覆盖元素中默认的文本内容
   ②属性绑定指令(v-bind):为元素属性动态绑定属性值,其简写形式(:)
   ③事件绑定指令(v-on):用来辅助程序员为 DOM 元素绑定事件监听
     通过 v-on 绑定的事件处理函数,需要在 methods 节点中进行声明
     其简写形式为(@)
事件修饰符:.prevent阻止默认行为:(例如:阻止 a 连接的跳转、阻止表单的提交等)
@keyup.esc="clearInput"//按键修饰符,keyup.esc 松开esc键触发
   ④双向绑定指令(v-model):只能配合表单元素一起使用!
     三种修饰符:.number自动转换为数值型、.trim自动过滤首尾空白字符、.lazy在“change”时而非“input”时更新
   ⑤条件渲染指令(v-if):按需控制 DOM 的显示与隐藏
   ⑥列表渲染指令(v-for):需要使用 item in items 的特殊语法(item 是当前的循环项、items 是待循环的数组)
     使用key维护列表的状态:好处有:正确维护列表的状态、复用现有的DOM元素,提升渲染的性能
三、过滤器(Filters)常用于文本的格式化
   过滤器可以用在 插值表达式、v-bind 属性绑定
   需要在 filters 节点中定义,应该被添加在 JavaScript 表达式的尾部,由“管道符(|)”进行调用

2022年1月1日
一、品牌列表案例(第一天学过知识的应用)
具体见CSDN之前内容

2022年1月2日
一、创建vite的项目并运行
   npm init vite-app 项目名称
   cd 项目名称
   npm install
   npm run dev
二、App.vue、main.js、index.html(确认预留的el区域)
   vue组件的构成:template(组建的模板结构)、script(组件的 JavaScript 行为)、style(组件的样式)
   vue 组件渲染期间需要用到的数据,可以定义在data 节点中,
   组件中的 data 必须是一个函数,不能直接指向一个数据对象。
   为 style 节点提供了 scoped 属性,从而防止组件之间的样式冲突问题。
三、组件的 props
   props 是组件的自定义属性,可通过 props 向子组件传递要展示的数据,好处是提高了组件的复用性。
   可以使用 v-bind 属性绑定的形式,为组件动态绑定 props 的值
四、Class 与 Style 绑定(不太明白)
   通过 v-bind 属性绑定指令,为元素动态绑定 class 属性的值和行内的 style 样式

2022年1月3日
一、props验证
   在封装组件时对外界传递过来的props 数据进行合法性的校验,从而防止数据不合法的问题。
   数据验证方案:①基础的类型检查 ②多个可能的类型 ③必填项校验 ④属性默认值 ⑤自定义验证函数
二、计算属性
   计算属性需要以 function 函数的形式声明到组件的 computed 选项中。
   计算属性侧重于得到一个计算的结果,因此计算属性中必须有 return 返回值!
   计算属性会缓存计算的结果,只有计算属性的依赖项发生变化时,才会重新进行运算。
三、自定义事件
   为了让组件的使用者可以监听到组件内状态的变化。
   三步骤:
    在封装组件时:
     ①声明自定义事件:必须事先在 emits 节点中声明
     ②触发自定义事件:可以通过 this.$emit('自定义事件的名称') 方法进行触发
    在使用组件时:
     ③监听自定义事件:通过 v-on 的形式监听自定义事件
   在调用 this.$emit() 方法触发自定义事件时,可以通过第2 个参数为自定义事件传参
四、组件上的v-model
   父->子同步数据
    ① 父组件通过 v-bind: 属性绑定的形式,把数据传递给子组件
    ② 子组件中,通过 props 接收父组件传递过来的数据
   子->父同步数据
    ① 在 v-bind: 指令之前添加 v-model 指令
    ② 在子组件中声明 emits 自定义事件,格式为 update:xxx
    ③ 调用 $emit() 触发自定义事件,更新父组件中的数据

2022年1月4日
一、任务列表案例
具体见CSDN之前内容

2022年1月5日
一、watch侦听器
   允许开发者监视数据的变化,从而针对数据的变化做特定的操作。
   需要在 watch 节点下,定义自己的侦听器
   默认情况下,组件在初次加载完毕后不会调用 watch 侦听器。
      如果想让 watch 侦听器立即被调用,则需要使用 immediate 选项。
   当 watch 侦听的是一个对象,如果对象中的属性值发生了变化,
      则无法被监听到。此时需要使用 deep 选项
   计算属性 vs 侦听器
      计算属性侧重于监听多个值的变化,最终计算并返回一个新值
      侦听器侧重于监听单个数据的变化,最终执行特定的业务处理,不需要有任何返回值
二、watch的生命周期
   created:组件在内存中创建完毕、mounted:组件渲染到页面完毕
   updated:data数据完成更新、unmounted:组件被销毁完毕
三、组件之间的数据共享
   1、父子关系
     ① 父->子 属性绑定  父组件通过 v-bind 属性绑定向子组件共享数据。同时,子组件需要使用 props 接收数据。
     ② 子->父 事件绑定  在子组件中声明 emits 自定义事件,调用 $emit() 触发自定义事件,更新父组件中的数据。
     ③ 父<->子 组件上的v-model
   2、兄弟关系
     ④ EventBus  创建EventBus.js
   3、后代关系
     ⑤ provide & inject   父节点的组件可以通过 provide 方法,对其子孙组件共享数据;子孙节点通过 inject 接收数据
   4、全局数据共享
     ⑥ vuex   全局配置axios
 
2022年1月6日-2022年1月7日
“购物车案例”
① 初始化项目基本结构
② 封装 EsHeader 组件
   允许用户自定义 title 标题内容
   允许用户自定义 color 文字颜色
   允许用户自定义 bgcolor 背景颜色
   允许用户自定义 fsize 字体大小
   es-header 组件必须固定定位到页面顶部的位置,高度为 45px,文本居中,z-index 为 999
③ 基于 axios 请求商品列表数据
④ 封装 EsFooter 组件
   1. es-footer 组件必须固定定位到 页面底部 的位置,高度为 50px,内容两端贴边对齐,z-index 为 999
   2. 允许用户自定义 amount 总价格(单位是元),并在渲染时 保留两位小数
   3. 允许用户自定义 total 总数量,并渲染到 结算按钮 中;如果要结算的商品数量为0,则 禁用结算按钮
   4. 允许用户自定义 isfull 全选按钮的选中状态
   5. 允许用户通过 自定义事件 的形式,监听全选按钮 选中状态的变化 ,并获取到 最新的选中状态
⑤ 封装 EsGoods 组件
   1. 实现 EsGoods 组件的基础布局
   2. 封装组件的 6 个自定义属性(id, thumb,title,price,count,checked)
   3. 封装组件的自定义事件 stateChange ,允许外界监听组件选中状态的变化
⑥ 封装 EsCounter 组件
   1. 渲染组件的 基础布局
   2. 实现数量值的 加减操作
   3. 处理 min 最小值
   4. 使用 watch 侦听器处理文本框输入的结果
   5. 封装 numChange 自定义事件
  • 5
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本报告旨在介绍本人在Vue实训课程中学习到的知识和经验,涵盖了Vue基础、Vue组件、Vue路由、Vue状态管理等方面的内容。 一、Vue基础 Vue是一款轻量级的前端框架,它的核心思想是数据驱动。在Vue中,我们可以通过声明式的模板语法来描述应用程序的状态和界面,Vue会自动将状态和界面进行关联,并在状态发生改变的时候自动更新界面。以下是我在学习Vue基础时掌握的知识点: 1. 插值表达式 Vue提供了一种简单的方式来将数据渲染到模板中,这就是插值表达式。插值表达式使用双大括号{{}}来将Vue实例中的数据绑定到模板中,例如: ``` <div>{{ message }}</div> ``` 在上面的代码中,我们将Vue实例中的message属性绑定到了一个div元素中。当message属性的值发生改变时,Vue会自动将新的值更新到div元素中。 2. 指令 Vue提供了一些内置的指令来实现一些常见的DOM操作,例如v-bind、v-if、v-for等。以下是一些常用指令的使用方法: - v-bind:将一个或多个属性绑定到Vue实例中的数据上 ``` <img v-bind:src="imageUrl"> ``` - v-if:根据Vue实例中的条件控制元素是否显示 ``` <div v-if="show">这个元素会在show为true时显示</div> ``` - v-for:根据Vue实例中的数据循环渲染元素 ``` <ul> <li v-for="item in items">{{ item }}</li> </ul> ``` 3. 计算属性 在Vue中,我们可以使用计算属性来处理一些复杂的逻辑。计算属性是一个函数,它接收Vue实例中的某些数据作为参数,并返回一个计算结果。当计算属性依赖的数据发生改变时,Vue会自动重新计算计算属性的值。例如: ``` computed: { fullName: function() { return this.firstName + ' ' + this.lastName; } } ``` 在上面的代码中,我们定义了一个计算属性fullName,它返回Vue实例中firstName和lastName属性的拼接结果。 4. 生命周期 Vue组件有多个生命周期钩子函数,它们可以让我们在组件的不同阶段执行一些操作。以下是一些常用的生命周期钩子函数: - created:在实例创建完成后被调用 ``` created: function() { console.log('组件创建完成'); } ``` - mounted:在组件挂载到DOM后被调用 ``` mounted: function() { console.log('组件挂载完成'); } ``` - updated:在组件更新后被调用 ``` updated: function() { console.log('组件更新完成'); } ``` 二、Vue组件 Vue组件是Vue应用程序的基本构建块,它将模板、数据和行为封装到一个独立的、可复用的单位中。以下是我在学习Vue组件时掌握的知识点: 1. 组件注册 在Vue中,我们可以使用Vue.component()方法来注册一个组件。例如: ``` Vue.component('my-component', { template: '<div>这是一个组件</div>' }); ``` 在上面的代码中,我们注册了一个名为my-component的组件。这个组件的模板是一个div元素,它的内容是“这是一个组件”。 2. 组件通信 在Vue组件中,有两种通信方式:props和事件。props是一种向子组件传递数据的方式,事件是一种向父组件传递数据的方式。以下是一个简单的示例: ``` // 子组件 Vue.component('child-component', { props: ['message'], template: '<div>{{ message }}</div>' }); // 父组件 new Vue({ el: '#app', data: { message: 'Hello, Vue!' } }); ``` 在上面的代码中,我们在父组件中定义了一个名为message的属性,并将它传递给了子组件。在子组件中,我们使用props接收这个数据,并将它渲染到了模板中。 3. 插槽 插槽是一种在父组件中向子组件传递内容的方式。它允许我们在父组件中定义一些内容,并将它们插入到子组件的特定位置。以下是一个示例: ``` // 子组件 Vue.component('child-component', { template: '<div><slot></slot></div>' }); // 父组件 new Vue({ el: '#app', template: '<child-component>这是插槽内容</child-component>' }); ``` 在上面的代码中,我们在父组件中定义了一段文本,并将它放在了child-component标签中。在子组件中,我们使用slot元素来定义插槽的位置。 三、Vue路由 Vue路由是一种在单页面应用程序中实现页面跳转和路由切换的方式。它使用Vue Router插件来实现。以下是我在学习Vue路由时掌握的知识点: 1. 路由配置 在Vue路由中,我们需要定义一个路由配置对象来描述应用程序的路由规则。路由配置对象包含一个routes属性,它是一个数组,每个元素都代表一个路由规则。例如: ``` const routes = [ { path: '/', component: Home }, { path: '/about', component: About } ]; ``` 在上面的代码中,我们定义了两个路由规则。当用户访问根路径时,应该显示Home组件,当用户访问/about路径时,应该显示About组件。 2. 路由嵌套 在Vue路由中,我们可以使用嵌套路由来实现更复杂的页面结构。嵌套路由是一种将子路由映射到父路由下的方式。以下是一个示例: ``` const routes = [ { path: '/user', component: User, children: [ { path: 'profile', component: Profile }, { path: 'settings', component: Settings } ] } ]; ``` 在上面的代码中,我们定义了一个名为user的父路由和两个子路由profile和settings。当用户访问/user/profile时,应该显示Profile组件,当用户访问/user/settings时,应该显示Settings组件。 3. 路由导航 在Vue路由中,我们可以使用router-link组件来实现页面跳转。router-link组件是一个特殊的标签,它会自动将链接渲染成a标签,并且在用户点击链接时触发路由跳转。例如: ``` <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> ``` 在上面的代码中,我们使用router-link组件来创建两个链接,一个是指向根路径的,一个是指向/about路径的。 四、Vue状态管理 Vue状态管理是一种管理Vue应用程序状态的方式。它使用Vuex插件来实现。以下是我在学习Vue状态管理时掌握的知识点: 1. 状态管理配置 在Vue状态管理中,我们需要定义一个状态管理配置对象来描述应用程序的状态规则。状态管理配置对象包含一个state属性,它是一个对象,代表了应用程序的状态。例如: ``` const store = new Vuex.Store({ state: { count: 0 } }); ``` 在上面的代码中,我们定义了一个名为count的状态,它的初始值为0。 2. 状态管理操作 在Vue状态管理中,我们可以定义一些操作来修改应用程序的状态。操作是一个函数,它接收一个state参数和一个payload参数,用于更新状态。例如: ``` const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment(state, payload) { state.count += payload.amount; } } }); ``` 在上面的代码中,我们定义了一个名为increment的操作,它接收一个amount参数,用于更新count状态。 3. 状态管理获取 在Vue状态管理中,我们可以使用getters来获取应用程序的状态。getters是一个函数,它接收一个state参数,并返回一个计算结果。例如: ``` const store = new Vuex.Store({ state: { count: 0 }, getters: { doubleCount(state) { return state.count * 2; } } }); ``` 在上面的代码中,我们定义了一个名为doubleCount的getter,它返回count状态的两倍。 总结 通过学习Vue实训课程,我深入了解了Vue框架的核心思想和基本用法。我学会了如何使用Vue组件、Vue路由和Vue状态管理来构建复杂的单页面应用程序,并在实践中掌握了Vue的基本操作和常见问题的解决方法。我相信这些知识和经验将对我在前端开发领域的职业发展有很大的帮助。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值