知网网站开发,小学网站asp,优设网页,德州网站建设赖殿波1. 请说下封装 vue 组件的过程#xff1f;
首先#xff0c;组件可以提升整个项目的开发效率。能够把页面抽象成多个相对独立的模块#xff0c;解决了我们传统项目开发#xff1a;效率低、难维护、复用性等问题。 分析需求#xff1a;确定业务需求#xff0c;把页面中可以…1. 请说下封装 vue 组件的过程
首先组件可以提升整个项目的开发效率。能够把页面抽象成多个相对独立的模块解决了我们传统项目开发效率低、难维护、复用性等问题。 分析需求确定业务需求把页面中可以复用的结构样式以及功能单独抽离成一个组件实现复用 具体步骤全局 app.component 或者在局部配置项 components 中定义组件名可以在 props 中接受给组件传的参数和值子组件修改好数据后想把数据传递给父组件可以采用 $emit 方法。 2. Vue组件如何进行传值的
父向子 - props定义变量 - 父在使用组件用属性给props变量传值
子向父 - $emit触发父的事件 - 父在使用组件用自定义事件名父的方法 (子把值带出来) 3. Vue 组件 data 为什么必须是函数
每个组件都是 Vue 的实例为了独立作用域防止变量污染别人的变量 4. 讲一下组件的命名规范
给组件命名有两种方式(在Vue.Component/components时)
一种是使用链式命名my-component
一种是使用大驼峰命名MyComponent
因为要遵循W3C规范中的自定义组件名 (字母全小写且必须包含一个连字符)
避免和当前以及未来的 HTML 元素相冲突 5. 路由之间是怎么跳转的有哪些方式
1、router-link to需要跳转到页面的路径
2、this.$router.push()跳转到指定的url并在history中添加记录点击回退返回到上一个页面
3、this.$router.replace()跳转到指定的url但是history中不会添加记录点击回退到上上个页面
4、this.$touter.go(n)向前或者后跳转n个页面n可以是正数也可以是负数 6. vue-router怎么配置路由
在vue中配置路由分为5个步骤分别是 引入vue-router.js 配置路由path和组件, 和生成路由对象 把路由对象配置到new Vue中router选项下 页面使用router-view/router-view 承载路由 router-link to要跳转的路径/router-link 设置路由导航(声明式导航方式/编程式跳转) 7. vue-router的钩子函数都有哪些
关于vue-router中的钩子函数主要分为3类
全局钩子函数要包含beforeEach
beforeEach函数有三个参数,分别是:
to:router即将进入的路由对象from:当前导航即将离开的路由next:function,进行管道中的一个钩子 如果执行完了,则导航的状态就是 confirmed 确认的否则为false,终止导航。
单独路由独享组件 beforeEnter,
组件内钩子 beforeRouterEnter beforeRouterUpdate, beforeRouterLeave 8. 路由传值的方式有哪几种
Vue-router传参可以分为两大类
分别是编程式的导航 router.push和声明式的导航 router.push
字符串直接传递路由地址但是不能传递参数 this.$router.push(home)
对象 命名路由 这种方式传递参数目标页面刷新会报错 - nameparams this.$router.push({name:news,params:{userId:123}) 查询参数 和path配对的是query this.$router.push({path:/news,query:{uersId:123}) 接收参数 this.$route.query
声明式导航
字符串 router-link to:news/router-link
命名路由 router-link :to:{name:news,params:{userid:1111}}/route-link
还可以to/path/值 - 需要提前在路由 规则里值 /path/:key
查询参数 router-link :to{path:/news,query:{userId:1111}}/router-link
还可以to/path?keyvalue 9. 怎么定义vue-router的动态路由?怎么获取传过来的动态参数?
动态路由指的就是path路径上传值
前提需要路由规则了提前配置/path/:key名可以写多个用/隔开
获取使用$route.params.key名来提取对应用路径传过来的值 10. Vue的路由实现模式hash模式和history模式
hash模式在浏览器中符号“#”#以及#后面的字符称之为hash用 window.location.hash 读取。特点hash虽然在URL中但不被包括在HTTP请求中用来指导浏览器动作对服务端安全无用hash不会重加载页面。
history模式history采用HTML5的新特性提供了两个新方法 pushState() replaceState()可以对浏览器历史记录栈进行修改以及popState事件的监听到状态变更 11. 请说出路由配置项常用的属性及作用
路由配置参数
path : 跳转路径 component : 路径相对于的组件 name:命名路由 children:子路由的配置参数(路由嵌套) props:路由解耦 redirect : 重定向路由 12. 编程式导航使用的方法以及常用的方法
路由跳转 this.$router.push() 路由替换 : this.$router.replace() 后退 this.$router.back() 前进 this.$router.forward() 13. Vue如何去除URL中的#
vue-router 默认使用 hash 模式所以在路由加载的时候项目中的 URL 会自带 “#”。
如果不想使用 “#” 可以使用 vue-router 的另一种模式 history
new Router ({ mode : history, routes: [ ]})
注意当我们启用 history 模式的时候由于我们的项目是一个单页面应用所以在路由跳转的时候就会出现访问不到静态资源而出现 “404” 的情况这时候就需要服务端增加一个覆盖所有情况的候选资源
如果 URL 匹配不到任何静态资源则应该返回同一个 “index.html” 页面。 14. 说一下你在vue中踩过的坑
1、第一个是给对象添加属性的时候直接通过给data里面的对象添加属性然后赋值新添加的属性不是响应式的
【解决】通过Vue.set(对象属性值)这种方式就可以达到对象新添加的属性是响应式的
2、 在created操作dom的时候是报错的获取不到dom这个时候实例vue实例没有挂载
【解决】通过Vue.nextTick (回调函数进行获取) 15. $route和$router的区别
$route是路由信息对象包括 pathhashqueryfullPathmatchedname 等路由信息参数$router是路由实例对象包括了路由的跳转方法实例对象等