前端组件

vue Router――进阶篇

匿名 (未验证) 提交于 2019-12-02 21:53:52
vue Router――基础篇 正如其名, vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。 记住参数或查询的改变并不会触发进入/离开的导航守卫。你可以通过观察 $route 对象来应对这些变化,或使用 beforeRouteUpdate 的组件内守卫 const router = new VueRouter({ ... }) router.beforeEach((to, from, next) => { // ... }) 当一个导航触发时,全局前置守卫按照创建顺序调用。守卫是异步解析执行,此时导航在所有守卫 resolve 完之前一直处于 等待中 每个守卫方法接收三个参数: to: Route : 即将要进入的目标 路由对象 from: Route : 当前导航正要离开的路由 next: Function : 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。 next() : 进行管道中的下一个钩子。如果全部钩子执行完了,则导航的状态就是 confirmed (确认的) next(false) : 中断当前的导航。如果浏览器的 URL 改变了 (可能是用户手动或者浏览器后退按钮),那么 URL 地址会重置到 from 路由对应的地址。 next

Docz 用 MDX 写 React UI 组件文档

匿名 (未验证) 提交于 2019-12-02 21:53:52
为了提升开发效率,创建一套 UI 组件库是一种较为有效的方式之一:可以减少重复工作、提高可复用,所以现在越来越多团队开始创建自己的 UI 组件库。较早的 Twitter 的 Bootstrap 虽然只能称为 UI 库,但也大大提升了开发效率。后面 MVVM 大行其道 ,前端终于可以把 HTML、CSS、JS 放在一起开发包含 UI 、交互真正意义上的组件了,现在有基于 React 的 Material-UI 、国内阿里金服基于 React 的 Ant Design 、饿了么基于 Vue.js 的 Element 、TalkingData 基于 Vue.js 的 iView 等。有了这些 UI 组件,让前端开发变得前所未有的方便,完成一个项目就像是拿一块块的积木(组件)堆成一个完整项目。 考虑到前期开发 UI 组件的工作量及后期维护成本,我认为在大厂开源 UI 组件库的基础上个性化色彩(一般都提供颜色定制)、增加团队的个性化需求组件、减少不需要的组件是个不错的主意。 有了团队的 UI 组件库就少不了使用文档,毕竟文档还是比口口相传要靠谱的多。这里介绍一个可以快速创建 React UI 组件库使用、演示文档的项目: Docz 。 Docz 的特色是零配置、简单、快速,它使用 Markdown 语法的扩展 MDX (在 Markdown 里引入 React 组件并渲染出组件)来书写文档

vue-manage-system 后台管理系统开发总结

匿名 (未验证) 提交于 2019-12-02 21:53:52
vue-manage-system,一个基于 Vue.js 和 element-ui 的后台管理系统模板,从2016年年底第一个commit,到现在差不多两年了,GitHub上也有了 5k star,也是这些让我有了持续更新的动力,其中也踩了很多坑,在这总结一下。 github地址: vue-manage-system 线上地址: blog.gdfengshuo.com/example/work/ element-ui 自带的字体图标比较少,而且许多比较常见的都没有,因此需要自己引入自己想要的字体图标。最受欢迎的图标库 Font Awesome,足足有 675 个图标,但也因此导致字体文件比较大,而项目中又不需要用到这么多图标。那么这时候,阿里图标库就是一个非常不错的选择。 首先在阿里图标上创建一个项目,设置图标前缀,比如 el-icon-lx,设置Font Family,比如 lx-iconfont,添加需要用到的图标到项目中,我这边选择 Font class 生成在线链接,因为所有页面都需要用到图标,就直接在 index.html 中引入该css链接就行了 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>vue-manage-system</title> <!-- 这里引入阿里图标样式 --> <link

浅析Vue源码(九)——VirtualDOM与path

六眼飞鱼酱① 提交于 2019-12-02 21:48:32
本文转载于: 猿2048 网站➥ https://www.mk2048.com/blog/blog.php?id=kj12h222j 今天来讲讲VirtualDom与path之间到底存在什么关系? VNode (VirtualDom) 在未出现双向绑定之前,我们需要在各个触发事件方法中直接操作DOM节点来达到修改相应视图的目的。但是当应用一大就会变得难以维护,reflow(回流)很影响性能的。 因此就有人提出来,那我们是不是可以把真实DOM树抽象成一棵以JavaScript对象构成的抽象树,在修改抽象树数据后将抽象树转化成真实DOM重绘到页面上呢?于是虚拟DOM出现了,它是真实DOM的一层抽象,用属性描述真实DOM的各个特性。当它发生变化的时候,就会去修改视图。 可以想象,如果用最简单粗暴的方法将整个DOM结构用innerHTML修改到页面上,那么这样进行重绘整个视图层是相当消耗性能的,那是不是可以考虑每次只更新它修改的部分呢?所以Vue.js将DOM抽象成一个以JavaScript对象为节点的虚拟DOM树,以VNode节点模拟真实DOM,可以对这颗抽象树进行创建节点、删除节点以及修改节点等操作,在这过程中都不需要操作真实DOM,只需要操作JavaScript对象后只对差异修改,相对于整块的innerHTML的粗暴式修改,大大提升了性能

vue插件开发、文档书写、github发布、npm包发布一波流

怎甘沉沦 提交于 2019-12-02 20:14:54
本文转载于: 猿2048 网站➻ https://www.mk2048.com/blog/blog.php?id=kia0kbibb 做vue开发,基本的操作会了之后是不是特想撸一撸vue的插件,让自己的代码可( 骚 )复( 骚 )用( 的 )。别急,今天和你一起手摸手,哦呸,是手把手,一起撸一管,哦再呸,是封装一个基于vue的支付宝密码弹窗插件。然后还会介绍如何书写插件的markdown说明文档、发布到github、在github设置项目的运行地址、发布npm包。 简单看下效果图,主要实现密码输入完成自动触发输入完成的回调函数,自定义标题、自定义高亮颜色、自定义加载动画,密码错误弹窗,可清空密码等基本操作。 开发vue插件之前呢,先说下封装插件的目的是什么?封装插件的目的就是为了代码的可复用,既然是为了可复用,那么只要能实现可复用的操作,封装方式就可以多样化。这和jq的 $.fn.myPlugin = function(){} 有些区别。先来看下官方文档对于vue插件的说明: 插件通常会为 Vue 添加全局功能。插件的范围没有限制——一般有下面几种: 添加全局方法或者属性,如: vue-custom-element 添加全局资源:指令/过滤器/过渡等,如 vue-touch 通过全局 mixin 方法添加一些组件选项,如: vue-router 添加 Vue 实例方法

React 源码分析

天涯浪子 提交于 2019-12-02 20:11:31
本文转载于: 猿2048 网站▷ https://www.mk2048.com/blog/blog.php?id=kiaa0aiib 写在前面 React 开发一年多,最近仔细研究了 React 源码,在这里总结一下原理。React 源码比较复杂不适合初学者去学习。所以本文通过实现一套简易版的 React,使得理解原理更加容易(本文基于 React v15)。包括: React 的几种组件以及首次渲染实现 React 更新机制的实现以及 React diff 算法 React 的代码还是非常复杂的,虽然这里是一个简化版本。但是还是需要有不错的面向对象思维的。React 的核心主要有一下几点。 虚拟 dom 对象(Virtual DOM) 虚拟 dom 差异化算法(diff algorithm) 单向数据流 组件声明周期 事件处理 本文代码仓库 直接在游览器中打开 main.html 中查看效果 更改代码请先执行执行 npm i 安装依赖(使用了部分 es6 代码) 修改代码后请执行 npm run dev 重新编译代码 实现一个 hello React!的渲染 看如下代码: // js React.render('hello React!',document.getElementById("root")) // html <div id="root"></div> // 生成代码

第六章、forms组件

徘徊边缘 提交于 2019-12-02 19:51:35
目录 第六章、forms组件 一、注册功能手写 二、forms组件完整写法 基本使用 三、forms组件前端渲染标签组件 三、forms组件其他知识点 在python console测试 校验数据 form组件数据校验的规则 四、其他几个常见字段类型 五、forms组件所有内置字段类型 六、forms组件的字段常见参数 用正则来约束 七、forms组件钩子函数 八、通过后端修改前端的样式 第六章、forms组件 一、注册功能手写 要求 1.注册功能 用户输入的用户名中 不能包含西游记 如果包含了 就提示用户 输入的内容不符合社会主义核心价值观 用户输入的密码 不能小于三位 如果密码少于三位 提示用户 密码太短了 说明 (******) 校验数据通常是前后端都有校验 但是前端校验可有可无 哪怕再牛逼 后端也必须要有校验 反正一句话 前端可有不校验 后端必须校验!!! 分析 1.搭建前端页面 >>> 渲染页面 2.获取前端用户提交的数据校验 >>> 校验数据 3.对数据的校验的结果 展示到前端页面给用户查看 >>> 展示错误信息 前端代码 #reg.html部分代码 <form action="" method="post"> <p>username: <input type="text" name="username"> <span style="color: red">{{

Django—分页器与form组件

社会主义新天地 提交于 2019-12-02 19:46:32
目录 分页器 现成分页器代码 如何使用 后端 前端 form组件 form 校验组件 使用校验组件与钩子函数 三种渲染方式 正则校验* 分页器 现成分页器代码 只需要会使用即可。 在Django项目下新建utils文件夹,新建一个py文件,放入封装好的分页器代码。 class Pagination(object): def __init__(self, current_page, all_count, per_page_num=10, pager_count=11): """ 封装分页相关数据 :param current_page: 当前页 :param all_count: 数据库中的数据总条数 :param per_page_num: 每页显示的数据条数 :param pager_count: 最多显示的页码个数 用法: queryset = model.objects.all() page_obj = Pagination(current_page,all_count) page_data = queryset[page_obj.start:page_obj.end] 获取数据用page_data而不再使用原始的queryset 获取前端分页样式用page_obj.page_html """ try: current_page = int(current_page)

【1029 | Day55】Form组件

怎甘沉沦 提交于 2019-12-02 19:41:34
目录 4. form组件 4.1 form组件的功能 4.2 form组件的使用 4.3 校验数据 4.4 渲染页面 4.4.1 三种渲染前端页面的方式 4.5 展示错误信息 4.5.1 取消前端的校验 4.5.2 展示错误信息 4.6 forms组件钩子函数 4.6.1 局部钩子 4.6.2 全局钩子 4.7 改变input框的type属性值 4.8 form-control属性 4. form组件 4.1 form组件的功能 1.搭建前端页面 >>> 渲染页面 2.获取前端用户提交的数据校验 >>> 校验数据 3.对数据的校验的结果 展示到前端页面给用户查看 >>> 展示错误信息 4.2 form组件的使用 自己要先写一个类 from django import forms class MyRegForm(forms.Form): username = forms.CharField(min_length=3,max_length=8) password = forms.CharField(min_length=3,max_length=8) email = forms.EmailField() 4.3 校验数据 from app01 import views # 1.给自定义的类传一个字典 obj = views.MyRegForm({'username':'jason',

微信小程序 bug 集中营

寵の児 提交于 2019-12-02 19:32:16
本文转载于: 猿2048 网站➮ https://www.mk2048.com/blog/blog.php?id=c1ccbhj0j Create by jsliang on 2018-9-17 17:58:56 Recently revised in 2018-10-22 09:58:07   Hello 小伙伴们,如果觉得本文还不错,记得给个 star , 你们的 star 是我学习的动力! GitHub 地址  GitHub 最新更新:2018-10-17 13:34:11。追求最新文章的小伙伴可前往下载,掘金上的文章每周六、日更新。 写在前面  首个微信小程序实践记录:  工作量: PSD 18 张 (导出的 JPG 30 张)  耗时:12 个工作日  总结1: 在页面制作商,需要 3 周工作日(工作 15 天)搞定,前后端对接口另计。实际上,12 个工作日可以搞定所有页面,但是应该往前铺 1.5D 熟悉框架,往后铺 1.5D 整理代码。当然每个人的耗时可能不同,可根据个人实际情况进行调整。  总结2:在 API 调用上,根据接口数量可能需要 7-12 个工作日进行 API 调用,难点表现在: 1. 接口不够丰富,数据量不足; 2. 接口数据不够正式真实,跟前面的假数据相差太大; 3. 接口可能没法正常调用 等原因。故因根据小程序业务逻辑进行工作时长的报备。   这里有