一小池勺❤️❤️❤️ ❤️❤️❤️❤️胸有惊雷而面如平湖者,可拜上将军也。
Vue基础入门
一、填空题
- Vue是一套构建_____用户界面_____的渐进式框架。
- MVVM主要包含3个部分,分别是Model、View和_____ViewModel_____。
- Vue中通过_____refs_____属性获取相应DOM元素。
- 在进行Vue调试时,通常使用_____vue-devtools_____工具来完成项目开发。
- Vue中页面结构以_____组件_____形式存在。
二、判断题
- Vue与Angular和React框架不同的是,Vue设计为自下而上逐层应用。(
T
) - Vue完全能够为复杂的单页应用提供驱动。(
T
) - Vue是一套构建用户界面的渐进式框架,Vue的核心只关注视图层。(
T
) - Vue中MVVM框架主要包含3部分组成:Model、View和ViewModle。(
T
) - Vue可以在Node环境下进行开发,并借助npm包管理器来安装依赖。(
T
)
三、选择题
- 下列关于Vue说法错误的是(
D
)。
A.Vue与Angular都可以用来创建复杂的前端项目
B.Vue优势主要包括轻量级、双向数据绑定
C.Vue在进行实例化之前,应确保已经引入了核心文件vue.js
D.Vue与React语法是完全相同的 - 下列关于Vue的优势的说法错误的是(
C
)。
A.双向数据绑定
B.轻量级框架
C.增加代码的耦合度
D.实现组件化 - 下列不属于Vue开发所需工具的是(
D
)。
A.Chrome浏览器
B.VS Code编辑器
C.vue-devtools
D.微信开发者工具 - npm包管理器是基于(
A
)平台使用的。
A.Node.js
B.Vue
C.Babel
D.Angular - 下列选项中,用来安装vue模块的正确命令是(
A
)。
A.npm install vue
B.node.js install vue
C.node install vue
D.npm I vue
四、简答题
请简述什么是Vue。
Vue是一种开放源代码的JavaScript框架,用于构建用户界面和单页面应用。特点如下:数据驱动、组件化、灵活、轻量。
请简述Vue优势有那些。
Vue有诸多优势:
- 学习曲线平缓:Vue的语法简洁,入门容易。
- 数据驱动:Vue采用数据驱动模型,操作数据即可实现画面渲染。
- 组件化开发:Vue把网页分割为可复用的组件,包括HTML、CSS、JS均封装在组件中,整体结构清晰、模块化程度强。
- 生态完善:Vue拥有完整的生态圈,包括路由器、状态管理库、服务器端渲染等。
请简单介绍Vue、React之间的区别。
Vue与React的主要区别:
- 数据绑定:Vue采用双向数据绑定,React则采用单向数据流。
- 组件化:React采用JSX,Vue则采用模板。
- 性能:React在大型项目和对于性能敏感的场景的表现稍好一些。
- 社区活跃度及生态圈:React的社区更大,随之附带生态更庞大,而Vue的生态相对更紧凑而完善。
五、编程题
请使用Vue.js动手创建一个登录页面【请手动配置Vue.js开发环境】
<template> <div class="login"> <h2>Login</h2> <input type="text" placeholder="username" v-model="username"/> <input type="password" placeholder="password" v-model="password"/> <button @click="login">Login</button> </div> </template> <script> export default { name: 'login', data () { return { username: '', password: '' } }, methods: { login () { console.log('Username: ', this.username, 'Password: ', this.password) } } } </script>
Vue开发基础(上
)
一、填空题
Vue实例对象通过_____ new _____ 方式来创建。
Vue初始数据在实例对象的_____data_____ 参数中进行定义。
Vue实例对象中el参数表示_____ 唯一根标签_____ 。
Vue中实现双向数据绑定的指令是_____ v-model_____ 。
Vue事件绑定指令是_____ v-on_____ 。
二、判断题
在项目中引入了vue.js文件,才可以创建Vue实例。( T
)
Vue实例对象指令主要包括自定义指令和内置指令,通过指令省去DOM操作。( T
)
事件传递方式有冒泡和捕获,默认是冒泡。( T
)
Vue开发提出了组件化开发思想,每个组件都是一个孤立的单元。( T
)
在Vue中beforeDestroy与destroyed生命周期函数执行后,都可以获取到Vue实例。( T
)
三、选择题
- 下列关于Vue实例对象说法不正确的是(
D
)。
A.Vue实例对象是通过new Vue({})方式创建的
B.Vue实例对象只允许有唯一的一个根标签
C.通过methods参数可以定义事件处理函数
D.Vue实例对象中data数据不具有响应特性 - Vue实例对象中能够监听状态变化的参数是(
A
)。
A.watch
B.filters
C.watching
D.components - Vue中实现数据双向绑定的是(
C
)。
A.v-bind
B.v-for
C.v-model
D.v-if - 在Vue中,能够实现页面单击事件绑定的代码是(
B
)。
A.v-on:enter
B.v-on:click
C.v-on:mouseenter
D.v-on:doubleclick - 下面列出的钩子函数会在Vue实例销毁完成时执行的是(
B
)。
A.updated
B.destroyed
C.created
D.mounted
四、简答题
- 请简述什么是Vue实例对象。
Vue实例对象:每个Vue应用程序都会通过构造函数 Vue 创建一个新的 Vue 实例对象来启动。一个 Vue 实例在其生命周期内,会经历初始化、挂载、更新和销毁等过程,并在这些过程中提供一些生命周期钩子函数供开发者使用。Vue实例对象包含了很多构建应用所需要的选项和功能,如数据、方法、计算属性、指令等。
- 请简述什么是Vue组件化开发。
Vue组件化开发:Vue组件是Vue.js强大的一个功能,它允许开发者创建自定义的、可复用的代码块。这些块可以包括HTML、CSS甚至JS。在大型项目中,将代码拆分为独立的、可复用的组件,能让我们的应用更清晰、更易于开发和维护。
- 请简单介绍Vue数据绑定内置指令主要内容有哪些。
Vue数据绑定内置指令:
- v-bind指令:用于绑定HTML标签的属性和Vue数据的关系。可以简写为“:”,例如:class=“className”。
- v-model指令:用于在表单控件或者组件上创建双向数据绑定。
- v-for指令:用于遍历数组、对象。经常和v-bind:key一起使用。
- v-on指令:用于绑定监听事件,例如点击事件。可以简写为“@”,例如@click=“clickHandler”。
- v-if、v-else、v-else-if:用于条件渲染,决定是否渲染元素。
- v-show:用于显示或隐藏元素,与v-if不同的是,v-show不论条件为何总是将元素渲染,并使用CSS进行显示或隐藏。
- v-text和v-html:v-text用于更新元素的textContent,v-html用于更新元素的innerHTML。
五、编程题
- 请实现一个比较两个数字大小的页面
首先,吾等创设一新Vue元件,命名为CompareNumbers.vue。此元件内含二数字输入框,用户可于其中输入二数。当用户按下"比较"按钮时,compareNumbers函数即被触发,以比较二数之大小,并赋所得之值于result。然后,此结果将呈现于页面上。
于此文件中,吾等撰写如下代码:
<template> <div class="compare-numbers"> <h2>比较两个数字的大小</h2> <input type="number" placeholder="请输入第一个数字" v-model.number="num1"/> <input type="number" placeholder="请输入第二个数字" v-model.number="num2"/> <button @click="compareNumbers">比较</button> <p v-if="result !== null">结果:{{ result }}</p> </div> </template> <script> export default { data () { return { num1: null, num2: null, result: null } }, methods: { compareNumbers () { if (this.num1 > this.num2) { this.result = `${this.num1} 大于 ${this.num2}`; } else if (this.num1 < this.num2) { this.result = `${this.num1} 小于 ${this.num2}`; } else { this.result = `${this.num1} 等于 ${this.num2}`; } } } } </script>
请实现一个简单的网页计算器
<template> <div class="calculator"> <input type="number" v-model.number="num1"> <select v-model="operator"> <option>+</option> <option>-</option> <option>*</option> <option>/</option> </select> <input type="number" v-model.number="num2"> <button @click="calculate">=</button> <input type="number" v-model.number="result" readonly> </div> </template> <script> export default { data() { return { num1: 0, num2: 0, result: 0, operator: '+' }; }, methods: { calculate() { switch(this.operator){ case '+': this.result = this.num1 + this.num2; break; case '-': this.result = this.num1 - this.num2; break; case '*': this.result = this.num1 * this.num2; break; case '/': this.result = this.num1 / this.num2; break; } } } }; </script>
Vue开发基础(下
)
一、填空题
- Vue实例对象通过_____vm.$root_____方式来获取。
- Vue初始数据通过_____vm.$data_____方式获取。
- Vue中通过_____vm.$children_____获取当前实例的子组件。
- Vue中创建插件提供的方法是_____install_____。
- Vue中通过_____Vue.directive()_____创建自定义指令。
二、判断题
- Vue提供的全局API接口component(),不能用来注册组件。(
F
)
Vue 提供的全局 API 接口 component() 是用于注册组件的。
- Vue中Vue.config对象用来实现Vue全局配置。(
T
) - Vue中data选项中的数据具有响应特性。(
T
) - Vue中,可以通过vm.$slots获取子组件实例对象。(
F
)
在 Vue 中,vm.s l o t s 并 不 是 用 来 获 取 子 组 件 实 例 对 象 的 。 v m . slots 并不是用来获取子组件实例对象的。vm.slots并不是用来获取子组件实例对象的。vm.slots 是一个对象,用于访问父组件传递给子组件的插槽内容。
- Vue实例对象中通过$options可以获取到父作用域下的所有属性。(
F
)
$options 属性是一个对象,包含了 Vue 实例的初始化选项。它是在创建 Vue 实例时从组件选项中生成的,并且包含了组件的数据、计算属性、方法等。但是它并不包含父作用域中的属性。
要访问父作用域中的属性,可以使用 Vue 提供的 props 选项来声明父组件向子组件传递的属性,然后在子组件内部使用 this.$props 来访问这些属性。
三、选择题
- 下列关于Vue实例对象接口说法,错误的是(
D
)。
A.Vue实例对象提供了实例可操作方法
B.Vue实例对象$data数据可以由实例vm委托代理
C.通过Vue实例对象可以进行Vue全局配置
D.Vue实例对象接口同样可以通过Vue方式调用
Vue 实例对象并没有 “接口” 这个特定的概念。
- 下面关于Vue全局配置说法,错误的是(
CD
)。
A.Vue.config.devtools可以设置devtools调试工具的启用和关闭
B.Vue.config是一个对象,包含Vue的全局配置
C.Vue.component()可以获取Vue全局配置对象
D.Vue.set.config可以获取到全局配置对象
Vue.component() 是用于注册全局组件的方法,但它并不是通过 Vue 的全局配置对象调用的。实际上,Vue 的全局配置对象是通过 Vue.config 来访问的,它包含了一些全局配置选项,如 silent、optionMergeStrategies 等。
- 下列不属于Vue实例对象属性的是(
B
)。
A.$data
B.$component
C.$props
D.$root
解释:
A. $data:Vue 实例对象的 $data 属性用于访问实例的数据对象。
B. $component:在 Vue 实例对象中,并没有 $component 这个属性。
C. $props:Vue 实例对象的 $props 属性用于访问父组件传递给子组件的属性。
D. $root:Vue 实例对象的 $root 属性用于访问根组件实例。
- Vue实例对象获取子组件实例对象的方式是(
B
)。
A.$parent
B.$children
C.$child
D.$component
- 下面对于Vue.mixin的说法,错误的是(
D
)。
A.Vue.mixin是Vue提供的全局接口API
B. Vue.mixin可以用来注入组件选项
C.使用Vue.mixin可能会影响到所有Vue实例
D. Vue.mixin不可以用来注入自定义选项的处理逻辑
错误。Vue.mixin 可以用来注入自定义选项的处理逻辑。你可以在混入对象中定义自己的选项和逻辑,然后通过 Vue.mixin 将它们注入到组件中。
四、简答题
请简述什么是Vue插件。
Vue插件:Vue插件通常是一个包含install方法的对象,它用于增强Vue本身或者增强其主类(如Vue.component, Vue.directive, Vue.mixin等),也可以向Vue原型添加新的方法。在使用这个插件时,我们只需要在主js文件中导入,然后使用Vue.use()安装即可。
请简述Vue全局API接口主要内容。
Vue.directive(name, definition): 注册或获取全局指令。
Vue.component(name, definition): 注册或获取全局组件。
Vue.mixin(mixin): 全局注册混入,影响注册之后所有创建的每个 Vue 实例。
Vue.use(plugin): 使用插件。
Vue.prototype: 扩展实例属性和方法。
Vue.extend(options): 创建一个“子类”或者说“派生类”。
请简单介绍Vue实例对象属性和方法。
数据属性:例如 data, props, computed 等。
DOM 属性:例如
$el
,$refs
等。生命周期钩子,如 created,mounted, updated, destroyed 等。
自定义方法,可以在 methods 选项中定义自己的方法。
实例方法,如
$set
,$delete
,$watch
,$emit
,$on
等。
五、编程题
请使用插槽vm.$slots动手实现一个导航栏结构。
请创建一个自定义插件,实现一个登录页面。
Vue过渡和动画
一、填空题
- Vue提供了内置的过渡封装组件是 _____ transition _____ 。
- 在过渡封装组件中使用_____ name _____ 属性可以重置过渡中切换类名的前缀。
- 通过_____ appear _____特性设置节点在初始渲染的过渡。
- 在离开的过渡中有 _____ v-leave _____ 、_____ v-leave-to _____ 、_____ v-leave-active _____3 个class切换。
- _____ 自定义过渡 _____ 的类名优先级要高于普通的类名。
二、判断题
- 函数式组件中的render()函数用来创建组件模板。(
T
) - 给过渡元素添加v-bind:css=“true”,Vue会跳过CSS的检测。(
F
) - Vue 中,v-bind:css 或简写形式 :css 并不是用来跳过 CSS 检测的选项。
实际上,Vue 的过渡系统通过添加 CSS 类名来触发过渡效果。当元素进入或离开过渡时,Vue 会根据添加或移除的 CSS 类名来应用相应的过渡效果。
- 在@before-enter阶段可以设置元素开始动画之前的起始样式。(
T
) - 在使用animate.css库时,基本的class样式名是animate。(
F
) - enter和leave动画钩子函数,除el参数外还会传入一个done作为参数。(
T
)
三、选择题
- 下列选项中关于动画钩子函数说法正确的是(
C
)。
A. @leave-cancelled函数只能用于v-if中
B. 对于@enter来说,当与CSS结合使用时,回调函数done是必选的
C. done作为参数,作用就是告知Vue动画结束
D. 钩子函数需要结合CSS transitions或animations 使用,不能单独使用
解析
A. @leave-cancelled 函数不仅可以在 v-if 中使用,也可以在其他支持动画的地方使用,例如 v-show、transition 组件等。
B. 对于 @enter 钩子函数,在与 CSS 结合使用时,回调函数 done 是可选的。done 函数用于通知 Vue 动画进入阶段已完 成,如果没有提供 done 函数,Vue 会根据过渡的 CSS 动画或过渡的持续时间自动完成过渡。
C. 正确。done 函数作为参数传递给动画钩子函数,用于告知 Vue 动画已经结束。通过调用 done 函数,可以在动画完成后执行其他操作或处理逻辑。
D. 错误。动画钩子函数可以与 CSS transitions 或 animations 结合使用,但并不是必须的。你可以使用动画钩子函数来执行自定义的过渡逻辑,不依赖于 CSS transitions 或 animations。
- 下列关于Vue为标签提供的过渡类名的说法,错误的是(
D
)。
A. v-enter在元素被插入之前生效,在元素被插入之后的下一帧移除
B. v-leave在离开过渡被触发时立刻生效,下一帧被移除
C. v-enter-active可以控制进入过渡的不同的缓和曲线
D. 如果name属性为my-name,那么my-就是在过渡中切换的类名的前缀 - 下列选项中关于多个元素过渡的说法,错误的是(
D
)。
A. 当有相同标签名的元素切换时,需要通过key特性设置唯一的值来标记以让Vue区分它们
B. 不相同元素之间可以使用v-if和v-else来进行过渡
C. 组件的默认行为指定进入和离开同时发生
D. 不可以给同一个元素的key特性设置不同的状态来代替v-if和v-else
四、简答题
- 请简述JavaScript钩子函数包括哪些。
beforeMount: 在挂载开始之前被调用。
mounted: 挂载完成后被调用。
beforeUpdate: 数据更新时调用,发生在虚拟DOM重新渲染和打补丁之前。
updated: 由于数据更改重新渲染虚拟DOM后调用。
beforeDestroy: 实例销毁之前调用,在这一步,实例仍然可以运行。
destroyed: Vue实例销毁后调用,在这一步,Vue实例的所有指令都被解除绑定,所有的事件监听器都被移除。
- 请简述6个内置的过渡类名。
v-enter: 定义进入过渡的开始状态。在元素被插入时生效,在下一个帧移除。
v-enter-active: 定义进入过渡的结束状态。在元素被插入时生效,在 transition/animation 完成之后移除。
v-enter-to: 2.1.8版及以上 定义进入过渡的结束状态。在元素被插入一帧后生效 (与此同时 v-enter 被移除),在 transition/animation 完成之后移除。
v-leave: 定义离开过渡的开始状态。在离开过渡被触发时生效,在下一个帧移除。
v-leave-active: 定义离开过渡的结束状态。在离开过渡被触发时生效,在 transition/animation 完成之后移除。
v-leave-to: 2.1.8版及以上 定义离开过渡的结束状态。在离开过渡被触发后一帧生效 (与此同时 v-leave 被删除),在 transition/animation 完成之后移除。
- 请简述自定义过渡类名的属性有哪些。
enter-class:自定义进入过渡的开始类名。
enter-active-class:自定义进入过渡生效时的类名。
enter-to-class:自定义进入过渡结束时的类名。
leave-class:自定义离开过渡的开始类名。
leave-active-class:自定义离开过渡生效时的类名。
leave-to-class:自定义离开过渡结束时的类名。
五、编程题
编写一个登录页面,使用Tab栏实现“账号登录”和“二维码登录”这两种方式的切换,并通过transition组件结合animate.css实现切换时的动画效果。
实现单击一个按钮后,切换盒子的展开和收起状态。
Vue路由
一、填空题
在项目中可以通过npm命令_____ npm install vue-router _____ 安装路由 vue-router。
使用_____ 路由对象_____ 获取当前激活的路由的状态信息。
通过一个名称来标识一个路由的方式叫作_____ 命名路由_____ 。
在业务逻辑代码中实现导航跳转的方式称为_____ 编程式导航_____ 。
单页面应用主要通过URL中的_____ hash(#) _____ 实现不同组件之间的切换。
二、判断题
- 后端路由通过用户请求的URL导航到具体的html页面。(
T
)
开发环境下,使用import VueRouter from 'vueRouter’来导入路由。( F
)
import VueRouter from ‘vue-router’;
- 嵌套路由的使用,主要是由页面结构来决定的。(
T
) - params方式传参类似于GET请求。(
F
)
params 方式传参是在路由中传递参数的一种方式,但它并不类似于 GET 请求。
在 Vue Router 中,我们可以通过路由的 params 字段来传递参数。这种方式将参数直接包含在 URL 中
- 在单页面应用中更新视图可以不用重新请求页面。(
T
)
三、选择题
- 下列vue-router插件的安装命令,正确的是(
A
)。
A. npm install vue-router
B. node install vue-router
C. npm Install vueRouter
D. npm I vue-router - 下列关于query方式传参的说法,正确的是(
C
)。
A. query方式传递的参数会在地址栏展示
B. 在页面跳转的时候,不能在地址栏看到请求参数
C. 在目标页面中使用“this. route.query.参数名
”来获取参数
D. 在目标页面中使用“this.$route.params.参数名
”来获取参数 - 下列关于params方式传参的说法,错误的是(
C
)。
A. 在目标页面中也可以使用“$route.params.参数名
”来获取参数
B. 在页面跳转的时候,不能在地址栏看到请求参数
C. params方式传递的参数会在地址栏展示
D. 在目标页面中使用“this.$route.params.参数名
”来获取参数
关于 query 方式传参:
A. 正确。query 方式传递的参数会在地址栏展示,参数会以键值对的形式追加在 URL 的查询字符串中,例如:/target-page?param1=value1¶m2=value2。
B. 正确。在页面跳转的时候,可以在地址栏中看到请求参数,因为参数会以查询字符串的形式显示在 URL 中。
C. 错误。在目标页面中获取 query 参数的正确方式是使用
$route.query.参数名
,而不是this.route.query.参数名
。正确的使用方式应该是this.$route.query.参数名
。D. 错误。this.$route.params.参数名 是用于获取路由参数(params)的方式,而不是获取 query 参数。
关于 params 方式传参:
A. 正确。在目标页面中也可以使用
$route.params.参数名
来获取路由参数。B. 正确。在页面跳转的时候,不能在地址栏中看到
params
参数,因为它们不会显示在URL
中。C. 错误。
params
方式传递的参数不会在地址栏展示,不会直接显示在URL
中。D. 正确。在目标页面中使用
this.$route.params.参数名
来获取路由参数是正确的用法。
总结:
query
方式传参会在地址栏展示参数,使用$route.query.参数名
来获取参数;而params
方式传参不会在地址栏展示参数,使用 $route.params.参数名
来获取参数。
四、简答题
vue-router路由的作用:
- 请简述npm方式安装vue-router的步骤。
首先,你需要在命令行中定位到你的项目文件夹。然后,运行以下命令来安装vue-router:
npm install vue-router
完成后,vue-router就被添加到了你的项目中,你可以在你的main.js中按需要引入和使用。
- 请简述vue-router路由的作用。
vue-router是Vue.js的官方路由库。它能够帮助你建立单页应用,不用刷新页面就可以实现页面的内容替换,还允许你通过URL直接访问页面。
- 请简单列举并说明路由对象包括哪些属性。
$route.path: 表示当前路由的路径,始终解析为绝对路径,如"/foo/bar"。 $route.params: 包含动态片段和全匹配片段的键值对的Object。例如,对于路径'/user/:username/post/:postid',访问'/user/evan/post/123',则$route.params的值为:{username: 'evan', postid: '123'}。 $route.query: 包含URL的查询参数的对象。例如,对于路径'/foo?user=1',则$route.query的值为{user: '1'}。 $route.hash: 如果URL中有哈希值(即'#'符号及其后面的内容),就会被包含在$route.hash中,例如,对于路径'/foo#bar',则$route.hash的值为'#bar'。 $route.fullPath: 表示URL的完整路径,包括查询参数和哈希的路径。 $route.matched: 一个包含当前匹配的所有嵌套路径片段的路由记录的数组。路由记录就是routes配置数组中的对象副本,数组中的首个记录(即matched[0])就是最深嵌套的记录,最后一个记录是根级别的记录。 $route.name: 当前路由的名字,如果有的话。
五、编程题
请使用Vue路由相关知识动手实现Tab栏切换案例,要求如下:
- 创建一个components/Message.vue组件,用来展示页面内容
- 创建3个子路由,分别是“待付款”“待发货”“待收货”页面,在每个子路由页面单独写出相应的内容
Vuex状态管理
一、填空题
- Vuex实例对象通过____
vm.$store
____方式来获取。 - Vuex实例对象中初始数据状态通过___
vm.$store.state
____ 方式获取。 - Vuex实例对象中组件状态通过 _____
vm.$store.commit()
____ 方式改变。 - Vuex中创建动态模块提供的方法是 ______
store.registerModule()
____。 - Vuex中通过 ________
vm.$store.dispatch()
____实现actions状态分发。
二、判断题
- Vuex实例对象可以调用Vue全局接口。(
F
) - Vuex中Vue.config对象用来实现Vuex全局配置。(
F
) - Vue.config 对象并不用于实现 Vuex 的全局配置。Vue.config 是 Vue.js 的全局配置对象,用于配置 Vue 实例的全局行为
- Vuex中state选项中数据是初始数据状态。(
T
) - Vuex中插槽可以实现组件任意嵌套,且在版本2.2.6+以后开始支持。(
F
)
插槽(Slots)并不是 Vuex 的功能之一,而是 Vue.js 组件系统的一项特性。
插槽(Slots)是用于在组件中定义可扩展的内容区域,允许我们在组件中嵌套其他组件或者插入内容。它提供了一种组件之间通信和组合的方式,但与 Vuex 并无直接关联。
- 当在Vuex实例对象中调用store时,一定会获取到store实例对象。(
T
)
三、选择题
- 下列关于Vuex实例对象接口的说法,错误的是(
B
)。
A.Vuex实例对象提供了store实例对象可操作方法
B.Vuex实例对象$data数据可以由实例委托代理
C.通过Vuex实例对象实现组件状态的管理维护
D.Vuex实例对象初始数据是state数据
Vuex 实例对象
$data
数据不可以由实例委托代理。在Vuex
中,$data
并不是Vuex
实例的一个属性或方法。Vuex
实例对象提供了store
实例对象可操作方法,用于管理和操作状态数据。
- 下面关于Vuex核心模块说法,错误的是(
B
)。
A.Vuex配置对象中,actions选项是异步的
B.Vuex.config对象是全局配置对象
C.Vuex配置对象中,mutations选项是同步的
D.通过commit完成mutations提交
Vuex.config 对象不是全局配置对象。在 Vuex 中,并没有名为 Vuex.config 的全局配置对象。在 Vuex 的配置对象中,actions 选项是用于定义异步操作的方法,mutations 选项是用于定义同步操作的方法。通过 commit 完成 mutations 的提交。
- 下列不属于Vuex.Store配置对象接收参数的是( A)。
A.data B.state C.mutations D.getters
data 不是 Vuex.Store 配置对象接收的参数。在 Vuex.Store 配置对象中,可以接收的参数有 state、mutations、actions、getters 等。
- Vuex实例对象中类似于computed计算属性功能的选项是(D )。
state B.mutations C.actions D.getters
getters 是类似于 computed 计算属性功能的选项。在 Vuex 的配置对象中,可以定义 getters,用于派生出一些基于状态的计算属性。
- 下面对于Vuex中actions说法,不正确的是( ABD)。
A.actions中事件函数通过commit完成分发
B.acitons中事件处理函数接收context对象
C.actions与Vue实例中的methods是类似的
D.可以用来注入自定义选项的处理逻辑
解析
A. actions 中的事件函数不是通过 commit 完成分发,而是通过 dispatch 来触发。commit 用于触发 mutations。
B. actions 中的事件处理函数接收的参数是一个 context 对象,可以通过该对象调用 commit、dispatch、getters 等方法。
C. actions 与 Vue 实例中的 methods 是类似的,都用于定义方法和处理逻辑。
D. actions 不能用于注入自定义选项的处理逻辑,而是用于定义异步操作的方法。
四、简答题
请简要分析Vuex的设计思想。
简述Vuex配置对象中的主要内容有哪些。
简述Vuex中的actions的含义。
五、编程题
请编程实现列表的增、删、改、查操作。
Vue开发环境
一、填空题
对于CLI类型的插件,需要以 @vue 为前缀。
使用npm包通过 npm install –g @vue/cli 命令全局安装@vue/cli 3.x。
使用 vue -version(vue –V) 来查看vue的版本号。
使用yarn包通过 yarn global add @vue/cli 命令全局安装@vue/cli 3.x。
在 Vue CLI 3中使用 vue create 项目名 命令来创建一个Vue项目。
二、判断题
卸载vue-cli的命令是npm uninstall vue-cli -g。(T)
添加CLI插件的命令是vue add vue-eslint。(F)
正确的命令是 vue add eslint。
插件不能修改webpack的内部配置,但是可以向 vue-cli-service 注入命令。(F)
插件不能修改 webpack 的内部配置,并且也不能直接向 vue-cli-service 注入命令。插件可以通过修改或扩展配置来影响这些命令的行为,但无法直接注入新的命令。
Vue CLI通过vue ui命令来创建图形用户界面。(T)
在文件中用“key=value”(键值对)的方式来设置环境变量。(T)
三、选择题
下列选项中说法正确的是(B)。
A. 新版的Vue CLI的包名称为vue-cli
B. 执行npm uninstall vue-cli -g命令可以全局删除vue-cli包
C. 使用yarn install add @vue/cli命令可以全局安装@vue/cli工具
D. 通过vue add ui命令来创建图形用户界面
A. 新版的 Vue CLI 的包名称为 @vue/cli,不是 vue-cli。
C. 使用 yarn install add @vue/cli 命令是错误的,正确的命令是 yarn global add @vue/cli 或 npm install -g @vue/cli,用于全局安装 Vue CLI 工具。
D. 通过 vue add ui 命令无法创建图形用户界面,正确的命令是 vue ui,用于启动 Vue UI,通过图形界面来管理和运行项目。
关于CLI服务,下列选项说法错误的是(C)。
A. 在@vue/cli-service中安装了一个名为vue-cli-service的命令
B. vue.config.js是一个可选的配置文件
C. 通过npx vue-cli-service helps查看所有的可用命令
C. 通过 npx vue-cli-service helps 命令是错误的,正确的命令是 npx vue-cli-service help,用于查看可用命令的帮助信息。
D. 通过vue ui使用GUI图形用户界面来运行更多的特性脚本
下列选项中说法正确的是(AD)。
l A. 使用相对路径引入的静态资源文件,会被webpack处理解析为模块依赖
l B. 放在public文件夹下的资源将会经过webpack的处理
l C. 通过绝对路径被引用的资源将会经过webpack的处理
l D. URL以~开始,会被认为是模块请求
B. 放在 public 文件夹下的资源文件不会经过 webpack 的处理,而是直接被复制到输出目录。
C. 通过绝对路径引用的资源文件不会经过 webpack 的处理,而是被视为普通的静态资源。
四、简答题
简述如何安装Vue CLI 3.x版本的脚手架。
简述如何在现有项目中安装CLI插件和第三方插件。
简单介绍CLI服务vue-cli-service 中的command命令包括哪些。
五、编程题
简单描述Vue CLI 3安装的过程。
简单描述使用Vue CLI 3创建项目的步骤。
服务器端渲染
一、填空题
webpack-hot-middleware 插件可以用来进行页面的热重载。
hash模式路由,地址栏URL中会自带 # 符号。
SSR的路由需要采用 history 的方式。
SEO 是利用搜索引擎规则,提高网站在搜索引擎内自然排名的一种技术。
Vue中使用服务器端渲染,需要借助Vue的扩展工具 vue-sever-render 。
二、判断题
客户端渲染,即传统的单页面应用模式。(T)
webpack-dev-middleware中间件对更改的文件进行监控。(T)
服务端渲染不利于SEO。(F)
服务端渲染指的是在服务器端生成完整的 HTML 页面,并将其发送给客户端。相比于传统的客户端渲染(Client-Side Rendering,CSR),服务端渲染能够提供更好的 SEO 支持
服务器渲染应用程序,需要处于Node.js server运行环境。(T)
使用git-bash命令行工具,输入指令mkdirs vue-ssr创建项目。(F)。
mkdir vue-ssr
三、选择题
下列选项中说法正确的是(A)。
A. vue-server-renderer的版本要与Vue版本相匹配
B. 客户端渲染,需要使用entry-server.js和entry-client.js两个入口文件
在客户端渲染中,需要使用两个入口文件:entry-server.js 用于服务器端渲染,entry-client.js 用于客户端渲染。
C.App.js是应用程序的入口,它对应vue-cli创建的项目的app.js文件
app.js 不是应用程序的入口,它对应的是 vue-cli 创建的项目的入口文件,通常是 main.js
客户端应用程序既可以运行在浏览器上,又可以运行在服务器上
客户端应用程序通常是指在浏览器上运行的前端应用,而服务器端应用程序是指在服务器上运行的后端应用。它们有不同的运行环境和目的。
下列关于SSR路由说法,错误的是(A)。
SSR的路由需要采用history的方式
SSR 的路由可以采用 history 的方式,也可以采用 hash 的方式。具体的选择取决于项目需求和技术栈的选择。
B. history模式的路由提交不到服务器上
C. history模式完成URL跳转而无须重新加载页面
D. hash模式路由,地址栏URL中hash改变不会重新加载页面
下列关于Nuxt.js的说法,错误的是(D)。
l A. 使用“create-nuxt-app 项目名”命令创建项目
l B. 使用Nuxt.js搭建的项目中,pages目录是用来存放应用的路由及视图
l C. 在Nuxt.js项目中,声明式路由在html标签中通过完成路由跳转
l D. Nuxt.js项目中需要根据目录结构手动完成对应的路由配置
Nuxt.js 采用约定优于配置的方式,根据文件的目录结构自动生成路由配置,无需手动完成对应的路由配置。这样可以简化开发流程并提高开发效率。
四、简答题
请简述什么是服务器端渲染。
请简述服务器端渲染的代码逻辑和处理步骤。
请简述Nuxt.js中,声明式路由和编程式路由的区别。