| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> VUE自我知识点检测 -> 正文阅读 |
|
[JavaScript知识库]VUE自我知识点检测 |
1.?什么是vue Vue.js是一套构建用户界面的渐进式框架。其核心理念是,组件化开发,数据驱动视图。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 2.什么是mvc和mvvm (1)MVC 是后端的分层开发概念; ????????其中M是model层:负责操纵数据库 。V是view层:视图层,发送请求,接收响应。C是controller,是业务逻辑处理层,接收请求和返回响应。 ? ? ? ??其中中M为model层:数据层保存数据,V是view层是页面的HTML结构。VM是一个调度者,链接M与V 3.框架和库的区别 (1)框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。 4.插值表达式 {{msg}} 5.vue指令界面防止闪烁 v-cloak 6.vue指令v-html和v-text的区别 ????????1.v-html:可以解析富文本,可以渲染html界面 7.vue指令-属性绑定及简写 ?v-bind? 简写: 8.vue指令-事件绑定及简写 v-on? ?简写@ 9.vue事件修饰符 ????????1.阻止冒泡 10.vue指令-双向数据绑定 v-model 原理:采用数据劫持结合‘发布者——订阅者’模式,通过Object.defineProperty()对每个属性的get和set进行拦截。在数据发生变化的时候发布消息给订阅者,触发相应的监听回调 11.vue指令-循环渲染 v-for 12.vue指令-显示隐藏 v-show 13.vue指令-v-for如何遍历对象、数组、数字 ????????1.遍历数组,参数(item,index) in list ????????2.遍历对象,参数(value,key,index) in obj ????????3.遍历数字,num in 10 14.vue指令-v-for为什么设置key 让界面元素和数组里的每个记录进行绑定,主要是为了高效的更新虚拟DOM,提高重排效率 key——只能是唯一的字符串或数字 15.vue指令-v-if和v-show的区别 ????????1.区别: 16.vue绑定class方式 (1)数组 (2)三木表达式 (3)数组内置对象(对象的键是样式的名字,值是Boolean类型) (4)直接通过对象 17.vue绑定style方式 (1)直接在元素上通过style 的形式,书写样式对象 ? <div style="color:red;"></div> data { 18.vue过滤器全局和局部声明方式及使用 (1)全局定义: (2)私有定义 ????????????????filters这个是实例化Vue的一个参数,和data,methods平级的,里面放的就是我们这个实例的私有过滤器。 19.vue键盘修饰符使用 ????1.监听所有按键:v-on:keyup ? ? 2.监听指定按键:v-on:keyup.按键 ? ? 3.使用按键别名:v-on:keyup.按键别名 20.vue键盘修饰符设置别名 Vue.config.keyCodes.f1 = 112 21.vue自定义指令全局和局部声明方式及使用 (一)全局定义 ? ? ?参数: ?(二)私有定义 1.实例里有个directives属性,这个属性是个对象 22.vue生命周期钩子函数有哪些? 23.vue生命周期钩子函数各阶段特点,什么作用? (1)创建前:beforeCreate(){} ? ? ? ? 虚拟dom元素挂载后,如果需要操作dom,可以在此生命周期执行 (5)更新前:beforeUpdate(){} (6)更新后:updated(){} (8)销毁后:destroyed(){} 24.vue-resource如何发送get,post请求 1.get请求 2.post请求 25.vue-resource发送post请求第三个参数写什么 { emulateJSON: true } 26.axios发送get,post请求 (1)axios.get(地址参数).then(res=>{ }) (2)post请求 (1)如果数据是form-url类型 axios.post(‘url地址参数’,formurl ) (2)如果数据是form-data类型 axios.post(‘url地址参数’,formdata) (3)参数类型为JSON类型 ? ? ? axios.post(this.baseurl+"/weChat/applet/subject/list",{enable:1}).then(res=>{ ? ? ? ? ? console.log(res); ? ? ? }) 27.axios发送post请求使用内置参数对象是什么 let formurl = new URLSearchParams() let formdata = new FromData() 28.vue中过渡动画类名有哪些 (1)入场 (2)退场 29.vue中过渡动画结合第三方插件使用 1.导入动画类库: <link rel="stylesheet" type="text/css" href="./lib/animate.css"> 2.定义 transition 及属性: <transition enter-active-class="fadeInRight" 30.vue中过渡动画中钩子函数的使用 (1)绑定事件 <transition @before-enter="beforeEnter" @enter="enter" @after-enter="afterEnter"> ? ? ? ? <div v-if="isshow" class="show">OK</div> ? ? </transition> (2)书写事件的处理程序
(3)css中书写.show{? ?} .show{ ? ? ? transition: all 0.4s ease; ? ? } 31.vue中如何设置v-for列表动画 列表使用<transition-group>标签 tag属性?规定transition标签内渲染后默认添加的列表外围的标签 (1)?定义过渡样式 32.vue中如何声明组件 // 注意:不能使用内置或保留的HTML元素作为组件id名称 ? ? //全局定义组件,在所有的vue实例对应的控制区域都可以使用 ? ? Vue.component('kaikai',{ ? ? ? template:'#kai' ? ? }) //私有定义只有在对应的vue实例的控制区域中才能拿到 ? ? components:{ ? ? ? xuan:{ ? ? ? ? template:'#xuan' ? ? ? } ? ? }, 33.vue中如何父组件给子组件传值 父组件中? ? <子组件标签? ? ?传递的值=‘值’> 子组件中 与data同级的位置 props:{ ? ? ? ? 传递的值名:{ ? ? ? ? ? ? ? ? type:[Number,String] ????????????????default:10 ????????} } 34.vue中如何子组件给父组件传值 父组件中:<sonComponentName ?@fromSonEventType="fatherComponentFunctionName()" ?/> 父组件中:methods:{ ????????} } 子组件中:<button @click="sendValueFunctonName()">发送数据</button> 子组件中:methods:{ ????????} } 35.vue中如何使用插槽,两种插槽的区别 普通插槽为<slot></slot> 此位置会被目标标签内的文本填充 具名插槽<slot name=‘header’></slot> 将内容插入到指定的插槽位置 <template v-slot:header>插槽内要加入的内容</template> 36.前端路由和后端路由的区别 后端路由:对于普通的网站,所有的超链接都是URL地址,所有的URL地址都对应服务器上对应的资源 前端路由:对于单页面应用程序来说,主要通过URL中的hash(#号)来实现不同页面之间的切换,同时,hash有一个特点:HTTP请求中不会包含hash相关的内容;所以,单页面程序中的页面跳转主要用hash实现;在单页面应用程序中,这种通过hash改变来切换页面的方式,称作前端路由 37.vue中如何使用路由 38.路由跳转两种方式,声明式,函数式 声明式 <router-link to="{path:'/son1' ,query:{ id:'10' }}" >跳转</router-link> 函数式 this.$router.push(路径及参数) 39.路由传参两种方式,声明式,函数式 40.路由嵌套 41.路由高亮 被匹配到的路由的router-link上会有个router-link-active的样式,我们通过设置这个样式设置激活标签的样式 在实例化路由的时候配置 linkActiveClass: "myactive" 42.路由重定向?redirect routes: [ ? ? ? ? ? ? ? ?{ ? ? ? ? ? ? ? ? ? ?// 把当前地址,重定向指定地址 ? ? ? ? ? ? ? ? ? ?redirect: "/login" ? ? ? ? ? ? ? ?}, 43.ref的使用 给指定标签添加ref属性 在生命周期中通过this.$refs.ref属性值获取对应的dom元素 44.属性计算,属性监听 ? // 属性计算 ? ? ? ? computed: { ? ? ? ? ? ? ? // 属性不能和data中重复 ? ? ? ? ? ? ? name: { ? ? ? ? ? ? ? ? ? get:function(){ ? ? ? ? ? ? ? ? ? ? ? return this.firstName + '-' +this.lastName; ? ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? ? // 只有当自身发生改变的时候才触发 ? ? ? ? ? ? ? ? ? set(value){ ? ? ? ? ? ? ? ? ? ? ? console.log(value); ? ? ? ? ? ? ? ? ? ? ? console.log(value.split('-')); ? ? ? ? ? ? ? ? ? ? ? if( value.split('-').length ==2){ ? ? ? ? ? ? ? ? ? ? ? ? ? this.firstName = value.split('-')[0] ? ? ? ? ? ? ? ? ? ? ? this.lastName = value.split('-')[1] ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? }, ? ? ? ? ? }, // watch监听data中属性的改变 ? ? ? ? ? watch:{ ? ? ? ? ? ? ? firstName:function(value){ ? ? ? ? ? ? ? ? ? console.log(value); ? ? ? ? ? ? ? ? ? this.name = this.firstName + '-' +this.lastName ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? lastName:function(value){ ? ? ? ? ? ? ? ? ? console.log(value); ? ? ? ? ? ? ? ? ? this.name = this.firstName + '-' +this.lastName ? ? ? ? ? ? ? }, ? ? ? ? ? }, 45.vue-cli使用,如何创建和启动项目,项目文件结构 vue create? 文件名 选择对应配置——见(2条消息) 安装vue-cli后创建项目的步骤以及创建后各文件(夹)的作用_终将抵达丶的博客-CSDN博客 46.使用第三方ui组件 47.覆盖ui组件样式 /deep/ 48.什么是vuex Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储,管理应用中所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 49.为什么用vuex,解决了什么问题
50.vuex的核心模块 (1)state
(2)getters
(3)mutation 修改state中的值,我们state每次变化,都应该由mutation去修改,方便追踪数据的流转。 ????????①this.$store.commit('mutation类型(函数名)',"参数,参数一般是对象形式") ????????②this.$store.commit({type:'mutation类型(函数名)'},...其他参数) (4)action action类似于mutation,不同的是 action可以包含异步操作 action不能直接修改state,如果想修改state的话,需要触发mutation (5)module
import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { // number:5, visible: false, userInfo:{}, }, getters: { }, mutations: { changeVisible(state,payload){ state.visible = payload }, changeUserInfo(state,payload){ state.userInfo = payload } }, actions: { }, modules: { } }) 51.vuex状态刷新重置问题如何解决 (1)保存本地 (2)在对应页面的生命周期内再次发起求情 52.什么是路由守卫,如何配置 路由守卫就是路由跳转过程中的一些钩子函数?,在路由跳转的时候,做一些判断或其它的操作。 类似于组件生命周期钩子函数? 配置全局的路由守卫 router.beforeEach((to, from , next) => { if (to.meta.need) { console.log(to.meta.need) console.log(111) getUserInfo().then(res=>{ if (res.code == 0) { next() } else { alert('请先登录!') next('/') } } ) } else { next() } }) 53.什么是同源策略,什么是跨域 什么是跨域(CORS) 首先跨域是由于浏览器的同源策略导致的,那什么是同源策略,同源就是指协议、域名、端口一致,如果这三个中的一个不同的话就会引起跨域问题 54.如何解决跨域 使用代理 55.代理如何配置,各个配置项什么意思 //配置代理 devServer: { //不设置 重写 http://wkt.myhope365.com/weChat //设置重写 http://wkt.myhope365.com proxy: { '/course-api': { //代理名称,这里最好有一个 target: 'https://course.myhope365.com/api', // 后台接口域名 changeOrigin: true, //是否跨域 pathRewrite:{ '^/course-api':''//路径重写 } } } } 56.如何封装axios,好处是什么 // 对http请求进行封装 import axios from 'axios' // 使用自定义的配置文件发送请求 const instance = axios.create({ baseURL: '', timeout: 5000, headers: { } }); // 添加请求拦截器 instance.interceptors.request.use(function (config) { // 在发送请求之前做些什么 return config; }, function (error) { // 对请求错误做些什么 return Promise.reject(error); }); // 添加响应拦截器 instance.interceptors.response.use(function (response) { instance// 对响应数据做点什么 if(response.status === 200){ return response.data; }else{ console.error("请求错误") console.error(response) } return response; }, function (error) { // 对响应错误做点什么 return Promise.reject(error); }); export d |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 14:59:23- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |