2024年最新Vue学习总结-组件化,学生会面试题选择题怎么答

最后更多分享:前端字节跳动真题解析

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

Title

效果:

在这里插入图片描述

props验证

我们定义一个子组件,并接收复杂数据:

Vue.component(“counter”,{

//子组件模板有且只有一个根标签

template: “<button @click=‘num1++,num2++’>{{num1}}+{{num2}}={{num1+num2}}”,

props: {

num1: {

type: Number,

default: 0

},

num2: {

type: Number,

default: 0

}

}

})

const app= new Vue({

el:“#app”,

data: {

num1: 1,

num2: 2

}

})

子组件可以对 items 进行迭代,并输出到页面。 props:定义需要从父组件中接收的属性

  • items:是要接收的属性名称

  • type:限定父组件传递来的必须是数组

  • default:默认值

  • required:是否必须

当 prop 验证失败的时候,(开发环境构建版本的) Vue 将会产生一个控制台的警告,但还是会执行

运行效果:

在这里插入图片描述

type类型,可以有:

在这里插入图片描述

子向父的通信:$emit

子组件接收到父组件属性后,默认是不允许修改的。既然只有父组件能修改,那么加和减的操作一定是放在父组件:

const app= new Vue({

el:“#app”,

data: {

num: 0

},

methods:{

incr(){

this.num++;

}

}

})

但是,点击按钮是在子组件中,那就是说需要子组件来调用父组件的函数,怎么做?

我们可以通过v-on指令将父组件的函数绑定到子组件上:

<counter :num1=“num” @incr1=“incr()”>

<counter :num1=“num” @incr1=“incr()”>

<counter :num1=“num” @incr1=“incr()”>

在子组件中定义函数,函数的具体实现调用父组件的实现,并在子组件中调用这些函数。当子组件中按钮被点击时,调用绑定的函数:

Vue.component(“counter”,{

template: “<button @click=‘subIncr’>点我呀,点我加1。{{num1}}”,

props: {

num1: {

type: Number,

default: 0

}

},

methods:{

subIncr(){

this.$emit(“incr1”)

}

}

})

vue提供了一个内置的 this.$emit() 函数,用来调用父组件绑定的函数

效果:

在这里插入图片描述

路由vue-router

=========================================================================

实现功能:一个页面,包含登录和注册,点击不同按钮,实现登录和注册页切换

在这里插入图片描述

编写登录及注册组件

新建一个user目录以及login.js及register.js,编写组件,这里我们只写模板,不写功能。

login.js内容如下:

const loginForm = {

template:'\

\

登录页

\

用户名:
\

密码:
\

\

}

register.js内容:

const registerForm = {

template:'\

\

注册页

\

用 户 名:
\

密  码:
\

确认密码:
\

\

}

编写父组件并引用子组件

Title

登录

注册


注册页/登录页

样式:

在这里插入图片描述

使用vue-router模块实现路由功能

vue-router简介和安装

使用vue-router和vue可以非常方便的实现 复杂单页应用的动态路由功能。

官网:https://router.vuejs.org/zh-cn/

使用npm安装:npm install vue-router --save

在这里插入图片描述

在index.html中引入依赖:

快速入门:

新建vue-router对象,并且指定路由规则:

// 创建VueRouter对象,并指定路由参数

const router = new VueRouter({

routes:[ // 编写路由规则

{

path:“/login”, // 请求路径,以“/”开头

component:loginForm // 组件名称

},

{

path:“/register”,

component:registerForm

}

]

})

  • routes:路由规则的数组,可以指定多个对象,每个对象是一条路由规则,包含以下属性:

  • path:路由的路径

  • component:组件名称

在父组件中引入router对象:

var vm = new Vue({

el:“#app”,

components:{// 引用登录和注册组件

loginForm,

registerForm

},

router // 引用上面定义的router对象

})

页面跳转控制:

登录

注册


  • 通过<router-view>来指定一个锚点,当路由的路径匹配时,vue-router会自动把对应组件放到锚点位置进行渲染

读者福利

========

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

由于篇幅过长,就不展示所有面试题了,想要完整面试题目的朋友(另有小编自己整理的2024大厂高频面试题及答案附赠)


img.cn/20201126205036657.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzM3OTAzNDY4,size_16,color_FFFFFF,t_70)


  • 30
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值