组件机制
2020-09-15 10:05:50 0 举报
AI智能生成
vue
作者其他创作
大纲/内容
src\core\global-api\index.js<br>initAssetRegisters()<br>组件声明函数
src\core\global-api\assets.js<br>initAssetRegisters()<br>组件注册 并添加components
走render<br>src\core\instance\render.js<br>vnode = render.call(vm._renderProxy, vm.$createElement)<br>
组件vnode创建<br>src\core\vdom\create-element.js<br><br>
判断 string<br>
判断是否是原生标签<br>config.isReservedTag(tag)<br>是 返回vnode<br>
如果是 自定义组件<br>执行createComponent()<br><br>
src\core\vdom\create-component.js<br>创建自定义组件 挂载 安装组件钩子,准备着<br>
src\core\vdom\patch.js<br>createElm()<br>将vdom转化为dom
判断是否是自定义组件<br>是 return
原始标签 递归直接创建<br>会走到createElement()这个方法
执行前面准备的 做实例化和挂载<br>if (isDef(i = i.hook) && isDef(i = i.init)) {<br> i(vnode, false /* hydrating */)<br> }<br>设置属性 追加到根组件
其他 返回VNode<br>
其他<br>vnode = createComponent(tag, data, context, children)<br>
first blood<br>
权限控制
路由权限<br>路由分为两种:<br>constantRoutes 和 asyncRoutes<br>
路由守卫<br>/src/permission.js<br>全局判断是否登录,没登录跳转到登录页面,<br>登录则跳转到有权限的路由页面<br>
请求登录<br>components/Login.vue<br>获取到用户信息,然后根据⻆⾊过滤asyncRoutes,<br>并将结果动态添加⾄router <br>
维护路由信息,实现动态路由⽣成逻辑<br>store/permission.js<br><br>
filterAsyncRoutes()<br>递归过滤AsyncRoutes路由表<br>
根据路由meta.role确定是否当前用户<br>拥有访问权限<br>hasPermission()<br>
获取⽤户⻆⾊,判断⽤户是否拥有访问权限<br>/src/permission.js<br>
按钮权限
自定义权限按钮指令<br>src/directives/permission.js<br>
no can no bb<br>
0 条评论
下一页