精华内容
下载资源
问答
  • 作为途上市后的首份财报,外界对于这家腾讯系旗下的互联网券商平台还是充满了一定的期待。根据财报来看,途证券在营收跟净利润这两个核心数据上保持好的同比增速。财报发布后,截止文章发稿,途的盘前股价为...

    5月24日,国内互联网券商第一股富途证券对外发布了它在2019年第一季度的新财报。作为富途上市后的首份财报,外界对于这家腾讯系旗下的互联网券商平台还是充满了一定的期待。根据财报来看,富途证券在营收跟净利润这两个核心数据上保持好的同比增速。财报发布后,截止文章发稿,富途的盘前股价为11.75美元,涨了2.44%。

    回顾富途上市后的股价表现,整体来看并不是走势并不是很理想,这也说明投资机构对于它的整体发展还是存在一些不信任。随着老虎证券也已经上市,这也让富途的股价在美股市场面临一些挑战。作为国内知名的互联网券商平台,富途能否在未来在营收上继续保持好的增速?美股研究社通过解读它的这份新财报,从富途的业务发展方面来看待它的机遇与挑战。富途新财报营收增长超市场预期 财报发布后盘前股价涨幅达2.44%

    在这里插入图片描述

    3月8日,腾讯系旗下的互联网券商富途控股正式登陆纳斯达克,发行价格区间为10美元至12美元,富途也成为国内首个赴美上市的互联网券商平台。根据它之前的招股书来看,富途不仅营收保持好的同比增长,更为重要的是在2018年已经实现扭亏为盈,这样的背景下富途新一季度的财报也许会有好的表现。

    根据财报来看,富途在这个季度的营收跟净利润方面继续保持同比增长。财报显示,一季度其营收同比增长37.1%,达2.364亿港元(3010万美元);毛利同比增长45.9%,达1.752亿港元(2230万美元);非美国通用会计准则下(Non-GAAP)实现净利润4930万港元(630万美元),同比增长2.5%。财报发布后,截止文章发稿,富途的盘前股价为11.75美元,涨了2.44%。
    在这里插入图片描述

    在用户方面,截止一季度,富途自主研发的一站式数字化金融服务平台"富途牛牛"注册用户数达570万,较18年一季度同比增长39.3%。开户客户数达54.8万,同比增长68.6%;有资产客户数达14.87万,同比增长59.3%;期末客户资产达623亿港元(79亿美元),同比增长20.7%。

    根据业务营收来看,富途在这个季度的交易佣金及手续费业务占总营收48.5%达1.146亿港元(1460万美元),利息收入占总营收45.6%达1.079亿港元(1370万美元),其他收入(含企业服务业务等)占总营收5.9%。

    对于富途来说,赴美上市后只是它开启新征程的第一步,上市也只是代表它暂时存活下来,但并不代表它在互联网券商行业占据了绝对性的竞争优势,毕竟在这个行业它也要面临跟传统券商的竞争。对于富途来说,目前它的营收还是较为单一,主要来自于"佣金+融资利息"的模式,这也会限制到它在券商行业的营收增长。在美股研究社看来,富途未来的业务发展不仅有自身存在的一些问题,外部的竞争对手仍然是最大的阻力。

    业绩增长面临不小的挑战 三大方面考验富途竞争力
    在这里插入图片描述

    近几年,国内企业赴美、赴港上市的数量规模在逐渐增加,不少中概股跟港股也成为国内外投资者关注的焦点。这些上市的企业也吸引了越来越多用户的关注,投资这其实也给富途这些互联网券商平台的业务发展提供了更多机会。只是对于富途来说,目前它的营收还是依赖于付费用户的佣金跟融资利息这两方面,这也让它的业务营收其实面临不少的挑战,毕竟用户规模增速很难在短期内实现大突破。在美股研究社看来,未来富途的发展要面临下面几个方面的影响。

    1, 富途面临的竞争对手不仅包括互联网券商平台,还有传统券商机构

    作为互联网券商行业的代表企业,富途的发展让外界看到了互联网券商在券商领域具备一定的发展潜力。只是对于富途来说,目前它的发展规模还并不是很庞大,业务发展还是面临很大的竞争压力。目前国内已经有两家互联网券商凭他顺利赴美上市,这也意味着富途要跟老虎证券在国外抢夺海外投资者的关注跟投资,但其实两家公司的业务还是有一些重合的。

    富途跟老虎证券都有在IPO分销服务上有不少的动作,两家公司服务的都是国内知名的中概股跟港股,像老虎证券IPO打新客户包括了爱奇艺、虎牙、拼多多、哔哩哔哩、360金融等客户;富途已经为多家新经济企业提供IPO分销服务,包括港股市场的小米、美团点评、华兴资本、阅文集团等知名企业,以及美股市场的如涵、新氧、云集、瑞幸等。虽说两个公司服务的IPO企业各有各的特色,但富途如何获得更多IPO企业的青睐并不容易。

    除了互联网券商平台之外,传统券商平台仍然是一个不可忽视的势力。它们在渠道、资源、用户规模方面还是更具备优势,毕竟它们发展了这么多年,在这个行业已经树立了品牌形象,对于普通大众而言他们还是更倾向的选择传统券商的几率更高。

    二、富途为提高获客投入的营销成本不低,同时业绩还受外汇政策的影响

    根据富途的新财报来看,它在这个季度投入的成本当中营销宣传成本仍然是个很大的支出,对于互联网平台来说营销宣传投入确实是它们吸引用户流量必须的支出。只是现在流量获取也越来越昂贵,要如何将这些用户转化为付费用户那更难。目前富途的收入来源一方面是来自于用户的闲置资金,根据之前的招股书在2016年至2018年间,富途每年都会将客户的闲置资金做银行存款,赚取利息。除了这部分的利息之外,最主要的还是来自于用户的付费首日,但券商行业要想提高付费用户的增长实属不易。

    除了付费用户增长难之外,富途的业绩还会收到外汇政策的影响,这主要还是由于它服务的是一批在美股跟港股上市的企业。富途的经纪佣金收入很大程度上依赖于平台促成的总交易量,如果政策进一步收紧货币兑换量,或明确禁止任何交易所的相关投资,那么富途前景势必会存在问题。在外汇政策方面,富途是处于下风的,毕竟它无法去干涉政策的变动,但这个宏观因素还是会影响到它的佣金收入。

    三、国内互联网金融行业监管收紧,富途并未获得国内市场的资质牌照

    互在联网券商行业,平台之间的竞争说到底是"资质牌照"与"产品技术"的竞争,谁能拥有更多地区牌照资质自然能够展开更多地区的业务发展。目前富途证券也是美国金融业监管局(FINRA)、美国证券投资者保护公司(SIPC)认证会员,受美国FINRA和美国证监会(SEC)监管。更是目前为数不多同时持有香港证监会颁发的1/2/4/5/9类牌照资质(中央编号:AZT137)以及美国Finra颁发的证券经纪牌照的券商。

    虽说富途持有美股跟港股的不少牌照,但这些在香港获得的牌照如果没有获得国内的批准的话,这也意味着富途在国内的投资证券行业还是处于无证的问题。没有国内市场的牌照,不论是富途还是平台上的用户发布与证券和证券市场相关的分析、预测、咨询或其他信息或涉违规,这对于富途来说也是一种潜在的危机。

    富途要进一步扩大国际化版图 提高业务营收往多元化方向发展
    在这里插入图片描述

    作为腾讯系旗下的互联网券商平台,富途在香港市场的表现一直抢眼。某种程度来说,香港是富途国际化第一站。富途是全香港客户量最大的券商,去年富途香港客户已有38万。对于富途来说,未来要想提高它在互联网券商行业的地位还是需要用更好的营收实力来说话。

    为了拓展新的营收方向,富途在B端市场也有不少的动作。5月8日富途推出了面向新经济公司的2B业务。富途新业务为富途安逸,聚焦于新经济公司在海外资本市场的两大业务:一是海外IPO分销业务;二是员工持股计划(ESOP)解决方案。预计未来一段时间富途将会继续推出多种产品,进一步推动业务多元化,继续提供其中包括港股美股免费LV2行情、港美股IPO跨市场打新等在内的多种产品。

    为了提高在海外市场的用户增长,富途去年还推出了专为美国投资者量身定制的Moomoo App,用于扩张美国市场。对于富途来说,它的定位目标应该是全球用户,海外市场同样具备很大的增长潜力,随着越来越多明星中概股的发展增速较为乐观,它们也受到海外投资者的关注,富途如何为海外用户带来更好的服务体验也同样重要。

    目前富途的营收来自于"佣金+融资利息"的模式,未来它可以在全品类零售服务商方面有更多新的尝试,像股指、商品、外汇期货等金融衍生品的交易才是此类零售经纪商的主要利润来源,这也可以成为富途的增长潜力。

    对于富途来说,上市后要想真正成为互联网券商行业的龙头老大,它还是需要用更多的用户规模跟业务营收规模来证明平台的竞争力。不论是美股还是港股未来市场发展空间仍然有很大的想象空间,对于富途来说这也是它发展的机遇,能否建立起稳固的业务护城河,开启一轮增长引擎,就看富途在后续有哪些大动作了。

    本文来源:​美股研究社(公众号:meigushe)—旨在帮助中国投资者理解世界,专注报道美国科技股和中概股,对美股感兴趣的朋友赶紧关注我们

    展开全文
  • 因疫情黑天鹅在全球的影响,居家娱乐成为更多人的休闲选择,也让一批游戏公司成为了资本市场的宠儿。...这也让成为继Spotify、Palantir、Slack等之后,第五家选择该方式的公司。 实际上,Rob.

    因疫情黑天鹅在全球的影响,居家娱乐成为更多人的休闲选择,也让一批游戏公司成为了资本市场的宠儿。

    去年,游戏引擎公司Unity融资13亿美元,IPO估值达到136亿美元。尽管该公司尚处于亏损,但上市之后股价仍增长近200%。另外一家电竞公司SkillZ,也计划通过特殊并购的方式上市,估值35亿美元。

    在这样的上市热潮下,儿童在线游戏公司Roblox站了出来,选择通过直接上市的方式登陆美股市场。这也让其成为继Spotify、Palantir、Slack等之后,第五家选择该方式的公司。

     

    实际上,Roblox做此选择并非一时兴起。其曾经向SEC提交了IPO申请,但由于估值过低而选择暂缓上市。如今,Roblox又完成新的融资卷土重来,目前估值是G轮融资时的40亿美元的7倍多,接近300亿美元。

    在这期间,这家沙盒手游平台公司可以说是顺利找到了提升估值的正确方式。不可否认,社交隔离推动游戏行业迎来爆发,外部环境利好着Roblox。但其自身是否具备出色的内生增长能力,仍需结合财报数据找到答案。

    跻身十亿美元俱乐部,Roblox体量仍"不够看"

    Roblox专注于儿童游戏领域,却与许多游戏公司存在着明显的不同。

    其主要提供一个可操作平台,通过Roblox Studio提供游戏创作工具。这个平台的核心是其仿真引擎,与微软旗下《我的世界》有着相似的拓展玩法,因此形成了一个巨大的UGC内容社区。

    其中,主要是开发者面向用户设计自己的游戏。Roblox上的游戏大多以免费下载为主,而盈利模式更多来源于玩家在游戏物品上的消费。

    根据招股书数据显示,Roblox在2018年和2019年分别取得3.13亿、4.88亿美元的营收规模,后者较前者同比增长了56%。平台的代表游戏Adopt Me、Royale High等为收入增长做出重要的贡献。

     

    细分到季度营收来看,Roblox在2020年Q1-Q3的营收分别为1.57、1.90、2.42亿美元,累计数额达5.89亿美元。若保守预计去年Q4仍为2.42亿美元,那么该年全年较2019年将实现超过70%的同比增速。

     

    另外,去年Q1-Q3的营收同比增速分别录得47%、64%、91%。该项数据重新回到扩大趋势之中。

    Roblox平台的游戏围绕移动设备开发,意味着公司的营收主要就是来自于手游部分。据Sensor Tower数据显示,2020年有5款手游的年收入已经超过10亿美元,跻身"十亿美元俱乐部"。

    (图源:Sensor Tower)

    而Roblox也在其中,位列第五名。其2020年移动端收入逼近11亿美元,较2019年增长近一倍。在去年8月时,Sensor Tower就给出一组报告,称Roblox是增长最快的手游之一。

    不难发现,Roblox在去年经历着快速增长,而部分无疑是受到居家隔离的利好影响。而Roblox在这个期间,有着大量线上活动以及超过200万UGC的内容创作,使得这个雪球越滚越大。

    不过,2020年的特殊性也决定了其难以被复制,因此Roblox在今年继续保持优异的成绩存在着较大的不确定性。

    另外,站在公司整体角度上看,Roblox的体量较同行还存在着不小的差距。

    不考虑各家产品在哪些设备端运行的前提下,Roblox远不及游戏公司动视暴雪、EA和Take-Two。

    后三家的收入已在去年Q3达19.54、11.51和8.41亿美元,在收入体量上是Roblox的数倍之多。其中,动视暴雪利用知名IP打造的《使命召唤》手游在移动端疯狂吸金,与其他两家巨头拉开大幅差距。

    相对的,未来上市后的Roblox在游戏领域占据的市场份额较小。这意味着,其具备的想象空间较目前上市的几家游戏巨头存在不足。加上旗下的一款平台一直是其核心收入来源,让Roblox的竞争力也格外有限。

    手握"Z世代",发力UGC却遇"破圈"难题

    在用户层面,Roblox的每日活跃用户长期保持逐季增长。从2019年Q1的0.158亿人逐渐上升至2020年Q3的0.362亿人。

    在去年的前九个月,Roblox的每日活跃用户达到了3100万,较2019年同期增长了82%。同时,这些用户在平台的在线时间较去年增长了一倍以上,达到了220亿小时。

    虽然Roblox在国内的知名度不如《我的世界》,也未有大量媒体报道,但是在全球依然有着超越后者的游戏玩家。

    据外媒Eurogamer报道,Roblox去年的月活跃用户数已经达到了1亿人,超越微软旗下游戏《我的世界》。因此,在沙盒游戏这一细分类型中,Roblox手握着大部分的用户。

    而且,这部分用户群体的年龄层级更具培养空间。平台拥有1.15亿个Z世代玩家,25%的用户年龄在9岁以下,29%的用户年龄在9至12岁之间。Roblox作为诞生许久的平台,"Z世代"成为颇具代表性的标签之一。

    也正是因为其独有的标签,平台用户之间的交流、分享格外活跃。用户不仅可以在平台上玩游戏,还能够进行一些线上的虚拟聚会。加上去年公共卫生事件的影响,让Roblox加速向社交平台靠拢。

    管理层同样看到了发展UGC内容社区的可行性,比如公司CEO在声明中透露,"虽然曾一度被视为游戏平台。但《Roblox》已经成长为全球社区,通过沟通、娱乐和交易等方式连接了数亿用户。"

    Roblox的社区具备着可挖掘的价值潜力,但同样也背负着如何"破圈"的困扰。招股书显示,该公司去年前九个月的亏损为2.03亿美元,比一年前的亏损4630万美元扩大超400%;同期运营费用3.45亿美元,比一年前的6260万美元增长超500%。

    值得注意的是,亏损的出现正是Roblox公司对于平台社区的维护所致,具体是持续给予开发者的分成奖励。

    在截至2020年9月30日的12个月里,Roblox向96万开发者分成。按照价值来算,超过1050人得到1万美元以上分成,接近250名开发者分成收入超过10万美元。

    有业内人士表示,目前 Roblox 展示的广告效果指标只有点击率,而点击率并不能跟踪实际游戏的安装情况。如果 Roblox 能够使广告效果更透明,或许就能使开发者更好地把控发行环节,从而提高收入。

    所以,若要尽快摆脱亏损,Roblox还有着一些不足需要弥补。更重要的是,Roblox需要在现有基础上开辟新的盈利增长点。其作为游戏界相对特别的存在,长期不做游戏做平台,14年仍未实现盈利。试图改变这一现状的话,无疑要寻求新的突破。

    UGC游戏潮起潮落,鼻祖Roblox如何支撑起沙盒未来?

    从90年代的场景编辑器到《毁灭战士》开创的大型MOD社区,再到沙盒类游戏的奠定者《模拟人生》,削弱了游戏的固定规则并给予玩家更多自由,逐渐成为游戏设计的主流

    而《Roblox》和《我的世界》目前已成为全球体量最大的两款UGC游戏,前者为游戏创作平台,后者为MOD的集合。虽然两者性质有些差异,但都是UGC游戏的典型代表。

    UGC游戏的火热持续多年,让一众玩家感慨它们的可塑性。不过随着多年过去,UGC游戏的创新也将会被消耗殆尽。

    UGC游戏出现的那些热门、经典玩法,其新鲜感早已不及过去。若忽略去年疫情的影响,游戏热度逐步下滑已是不争的事实。

    当初MOD的出现,赋予UGC游戏源源不断的活力,但是版权和收费始终是两个无法忽略的话题。

    《我的世界》就是如此,还有2019年火爆一时的"自走棋"亦是这样。MOD收费遭到用户的反对,这也让内容创作者无法获得收益,打击它们的创作积极性。

    而具体到Roblox身上,除了如何找到新的盈利增长点,"Z世代"社区可能出现的社会问题、如何扩大受众的年龄层也是其需要解决的问题。

    对于后面这一点,解决的方法或许是,Roblox需要更多投入在游戏引擎上,尤其是改善大型游戏运行和游戏视觉效果方面。

    因为即使目前平台上游戏开始满足更多用户群体,受众的性别比例更加平衡,但它目前对于更大年龄层的群众还是缺乏吸引力。这也是其体量难以与动视暴雪、EA等游戏发行巨头相匹敌的重要原因。

    所以,除了与学校合作外,一些传统的游戏厂商也可以是Roblox的合作对象,这能帮公司适应更广的用户群体。

    Roblox存在多年,经历着UGC游戏潮起潮落,要走得更远还有许多阻碍要克服。这正如Roblox首席执行官David Baszucki所说的:

    "这离当初设想的完全沉浸的数字社区还有一段路要走。"

    本文来源:美股研究社,转载请注明来源。

     

    展开全文
  • 而身边那些看似“游手好闲”的人,平时并没有见到他们有多努力,但是都赚得盆满钵满,百思不得解。 如果你还在相信:“一分耕耘一分收获”、“当你努力到无能为力的时候,成功就离你不远了”这样心灵鸡汤的时候,...

    赚钱不努力,努力不赚钱!你会发现一个现象,自己很辛苦也很努力地去工作,甚至连假节日都不敢休息,平时也很节俭,也没买什么奢侈品,每个月也都有存钱。但是就是不知道为什么,钱存得很慢,一年到头来存钱的速度还赶不上通货膨胀的速度。

    而身边那些看似“游手好闲”的人,平时并没有见到他们有多努力,但是都赚得盆满钵满,百思不得其解。

    如果你还在相信:“一分耕耘一分收获”、“当你努力到无能为力的时候,成功就离你不远了”这样心灵鸡汤的时候,其实你已经输在了起跑线上。

    赚钱真的和努力没有关系,但和方法有关系。其实赚钱是有方法的,只要我们懂得赚钱的方法和技巧,并在实践中不断地总结经验,我们一样能赚到钱。

    我是拾元富软件作者,我发表的每一篇文章都会从不同角度和纬度以及不同场景,或是不同思维方式及方向和想法来介绍人与人之间的差别,尤其是变现能力的差别。我最大的理想就是让每一个人的想法都变成现金白银,思维变现。

    1、大部分人靠自己的时间赚钱

    我们大部分人,没本金、没人脉,空有时间,便只能靠自己的时间来赚小钱,俗称讨生活。

    辛辛苦苦的打拼赚钱菲薄的收入来养活自己和家人,一个普通的人,一个勤奋的学生,通过读书十年寒窗,刻苦读书,披星戴月,加班熬夜也不过是一个月几千的低收入。

    靠劳动力赚钱是一种与十几亿人竞争的红海,由于有广大的劳动后备军存在,几乎没有任何讨价还价的能力,只能在食物链的最下游苦苦挣扎。

    这当中聪明一点的人,靠逼着自己念书、进修、升职来增加劳动效率,能多赚那么一点。而大部分智力无法支持提升劳动效率的人,就只能靠增加劳动时间长度来增加收入。

    人一天只有24个小时,意味着靠卖时间来赚钱,是有产能上限的。这就是为什么靠时间赚不了大钱的关键。

    2、近几年的流行趋势,靠吸引他人注意力赚钱

    所谓的注意力经济,其商业模式可以用一句非常久远的大忽悠话来概括:“全中国只要每个人给我一块钱,我就是亿万富翁了”。

    注意力经济这个东西的规模其实很好计算,假设一个人一天24小时,除了工作8小时睡觉8小时外,还有8小时闲暇时间,那么注意力生意就是在抢这8个小时。

    2004年芙蓉姐姐横空出世,借助网络走红成为无数草根得以成名的典范。这两年papi酱、逻辑思维、同道大叔等等的“网络红人”都是最典型靠吸引他人注意力赚钱的群体。其中最令人瞩目的是被称为“2016年第一网红”的papi酱,凭借原创短视频内容融资1200万人民币,估值3亿。

    还有网络直播,目前直播行业比较热门的是游戏直播,但不管是什么类型的直播,核心思想都是赚钱,只有内容与众不同,有噱头,甚至有知识点,就会有观众就会愿意看你直播,打游戏,纯聊天,唱歌跳舞,甚至吃饭睡觉都可以赚钱。

    3、最轻松的,是用钱来赚钱

    给你做一个道选择题:每月收租10000块和月薪20000块,请问你选哪个?大家都会很诚实的选择前者,年薪几十万,不如拆迁户。房产增值、房租、利息、股权收益等等这些都算靠钱赚钱。

    现在是一个资本回报率增速高于劳动回报率增速的时代,所以想仅靠劳动力来赚钱是不太可能的事情,你赚的再多也赶不上房价上涨的速度!

    李嘉诚有句名言:30岁以前要靠体力智力赚钱,30岁以后要靠“钱”赚钱。不过说着容易做起来难,很多人在30岁时有了一笔可观的财富积累,甚至有人会使财富积累达到人生的顶峰,但并不是所有的人都会让“钱”为自己赚钱。

    2019——>2020

    今天也给大家推荐一些做副业赚钱必备的工具与平台。由于篇幅有限,以下我们精选一些比较常见的副业工具箱,你可以对照一下,自己对什么更感兴趣,擅长什么领域的,就可以靠什么起家。当然,远远不止这些副业工具,我们以后在逐渐给大家介绍,并且有时间再详细的讲一些要点的知识给大家分享。

    1、建站:做网站赚钱必备的通用建站系统工具
    目前,在国内站长中常用的建站系统有WordPress、织梦CMS、Z-Blog、Discuz!等建站系统工具,这些建站系统工具在国内流行多年,并且是持续更新的,有大量的主题模板、建站插件可以拓展网站的功能,特别适合不懂技术的小白学习建站,快速做出自己的网站。建站后,可以通过广告联盟赚钱、售卖友情链接、做VIP付费资源、做淘宝客商品导购、售卖在线商品等等,开展自己的网上业务相比平台内,也更加自由、便捷。

    2、社群:建立自己的付费社群,并提供有价值的内容服务
    “物以类聚,人以群分”,社群并不是现在才有的,付费俱乐部过去就存在,只是现在我们通过网络社群工具就可以快速建立一个社群,并进行运营,获得客户,提供有价值的内容、资源与服务完成变现。加入不同的圈子,而成员从相应的圈子中也可以获得相关的资源与服务的收获。做付费社群的工具也有很多,譬如:小红圈、小V圈、知识星球等等。

    3、开店:在网上做电商的工具,开一家店铺卖货来赚钱
    很多人在网上做生意卖货首选是在淘宝开店,因为淘宝开店是免费的,但是现在在淘宝开店是没有流量的,需要自己通过站外获得流量导流。除了使用淘宝开店外,我们还可以通过有赞、微店等开设自己的网店,可以自己嵌入到你的公众号或者通过微信卖货。如果你有自己的头条号、抖音号、西瓜号、火山号,你可以开通头条小店就可以在头条系旗下的自媒体平台售卖自己的商品来赚钱,如果你没有货源可以选择分销其他供应商提供的货源赚取差价,你还可以通过衣联网、1688等B2B平台进货,然后上架自己的小店,并通过短视频、直播带货获得客户。脑洞历史观头条号曾在头条号卖货,月流水20万元。这些都是成功的案例!

    4、写书:网上写小说、写文学、写电子书,多种分成模式
    现在很多年轻人更喜欢在网上看小说、文学作品和电子图书,这块的需求市场非常庞大,如果你在网上写小说、电子书也有不同的渠道可以操作,并且做得好的话,也能够带来不菲的收入。常见的小说写作平台,如:掌阅板栗创作平台、豆瓣阅读文学写作平台、百度阅读个人作者等,我们可以在这些平台写作自己的电子书作品,小说(短篇、中篇、长篇)、图书都可以,平台。除此之外,还有知乎电子书作者、简书出版等等平台,你都可以写作自己的电子书作品或者出版自己的图书,不仅可以享受销售图书、小说的收益,在不同平台上还有可能与奖项,多语种出版、有声书、影视改编等多方面的收益。

    5、网课:利用自己擅长的知识技能,开设一门网课来赚取收益
    现在互联网很方便于学习,每个人都可以把自己所擅长的知识、技能教授给需要的人士,并获得应得的回报。职场从业者可以教大学生职场技能经验,大学生可以教中小学生知识技能,等等。我们在网上做网课有不同的平台可以上传课程,通用的平台有网易云课堂、腾讯课堂、哔哩哔哩等,垂直的平台也有很多,譬如:IT领域有慕课网,很多上班族也可以通过网课赚外快,有相当一部分人的网课收益反而远超工资的收入。

    6、纪录片:拍一部纪录片放在优酷,也可以获得内容分成变现
    如果觉得制作网络大电影、网剧的成本投入过高,那么你可以尝试做一些短剧、纪录片拍摄制作,也可以帮你创造不少收入,并带来很多的关注度、粉丝。现在很多年轻人非常喜欢看纪录片,你可以策划拍摄一部纪录片,可以把纪录片与优酷内容开放平台、爱奇艺、腾讯视频等视频平台合作进行广告、付费会员分成,但首先需要按照平台的要求来拍摄纪录片,譬如:了不起的匠人,这类题材的纪录片,既可以帮助博主涨粉数百万忠实粉丝,也可以获得不少的分成收益。另外,美食题材的纪录也是非常受欢迎的,很多人都对美食感兴趣。总之,如果有能力拍摄制作纪录片,也可以通过与视频网站合作获得与电影一样的分账收益。

    7、APP制作:新手也能一键生成自己的淘宝客、电商APP
    随着低代码、零代码工具的出现,很多不会编程的或者编程能力较差的人士也可以上手制作自己的APP软件,市场上的工具有很多,我们在这里给大家筛选出两个知名度较高、使用人数较多的平台,如果你有相关的需求,你可以制作自己的淘宝客APP、影视APP、电商APP等产品,有一些模块功能需要自己配置,有的是需要付费的,但对于新手来说,你可以自己上手操作,比外包也便宜很多。譬如:APICloud、变色龙云等,你可以使用平台提供的功能模块快速自己一款自己的APP,你也可以自己开发新的功能模块或者找技术人员定制自己的功能模块需求,很容易就能上手做一款自己的APP,通过多种方式获利赚钱。

    8、小程序:一键搭建自己的小程序,推广获客来赚取收益
    这两年是小程序较为流行的年份,有相当多的企业、网店店铺、实体商家有大量需求,但是并不是制作自己的小程序。其实,网上也有开源的小程序可以使用,也有是开发者开发的小程序上架到应用市场,可以自己购买搭建小程序即可快速制作一款自己的小程序了。譬如:免费开源的小程序电商-萤火商城系统,小程序应用市场-微擎、niucloud等等,你既可以制作自己的小程序(有不同类型的小程序,吸粉营销、商城、淘客等等)通过推广获客赚取收益。当然,你也可以为其他企业、商家提供搭建小程序服务收取服务费。

    9、有声书:利用业余时间在网上做有声图书的朗读员也能赚钱
    现在很多人喜欢听书,而不喜欢看书,随着有声书的崛起,做一名有声书朗读员,也是非常方便的,你可以在家就能操作,而无需到相关合作方工作。譬如:晨诵无声是一名身在河南的老师,他在业余时间喜欢做有声主播,录制了并通过喜马拉雅、懒人听书、蜻蜓FM、企鹅FM、静雅思听、掌阅等多家平台合作并上架有声书,赚取额外的收益,并且由于他的声音非常独特,也收获了大批的忠实粉丝,包括利器大师也是他的忠实粉丝。如果你想要在家做有声图书,除了需要具备一些播音知识、音频录制制作,还需要与喜马拉雅、懒人听书等平台合作,譬如,喜马拉雅旗下有喜配音可以海选有声书,并按小时与销量获得酬金与分成收益。

    10、付费活动:策划一场高回报付费活动,一次帮你赚得数千元
    年轻人待在大城市是比较孤独的,除了上班,周末待在家里也非常无聊,大多数时间都在自己的小圈子里打转。于是,有人开始在周末组织活动交友、兴趣爱好、游戏聚会等活动,既可以获得收入,也可以帮助其他人解决问题,甚至有一些小团队专门组织各种交友聚会的活动作为全职来赚钱,他们会选择在周末、节假日等组织活动。做付费活动报名的工具也很多,有平台类的,譬如:活动行、互动吧等;也有提供表单制作的付费报名工具,譬如:金数据、麦客CMS,你可以发起一场聚会、讲座、兴趣、沙龙等等活动,也可以用于线上讲课报名的工具,并且支持管理报名客户、发送报名通知、现场管理等等。

    小结:拾元富软件上做副业赚钱的方向很多,做得好的话那就可以转型成你的主业工作,有一些优秀的人士在自己的副业上发展的风生水起,副业赚取的收入超过主业的人士也非常多。尤其是近几年来,有相当多的小说写作者、短视频创作者、自媒体人士、直播主播等等职业,成功从副业转型成了主业。我们建议大家发展自己的副业,从兴趣爱好开始,不要一上来就想着赚得多少多少钱,先想着把这个事情做好再说,因为只有你做得足够好,你才能获得相应的回报。做自己感兴趣的项目才会更加长久,早期多投入时间、精力,后期才能有收获。看到有些人在早期什么都没有投入的情况下,就想着获得太多的回报,这是不现实的,要打消这种浮躁的心思。

    欢迎使用Markdown编辑器

    你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

    新的改变

    我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

    1. 全新的界面设计 ,将会带来全新的写作体验;
    2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
    3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
    4. 全新的 KaTeX数学公式 语法;
    5. 增加了支持甘特图的mermaid语法1 功能;
    6. 增加了 多屏幕编辑 Markdown文章功能;
    7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
    8. 增加了 检查列表 功能。

    功能快捷键

    撤销:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜体:Ctrl/Command + I
    标题:Ctrl/Command + Shift + H
    无序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    检查列表:Ctrl/Command + Shift + C
    插入代码:Ctrl/Command + Shift + K
    插入链接:Ctrl/Command + Shift + L
    插入图片:Ctrl/Command + Shift + G
    查找:Ctrl/Command + F
    替换:Ctrl/Command + G

    合理的创建标题,有助于目录的生成

    直接输入1次#,并按下space后,将生成1级标题。
    输入2次#,并按下space后,将生成2级标题。
    以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

    如何改变文本的样式

    强调文本 强调文本

    加粗文本 加粗文本

    标记文本

    删除文本

    引用文本

    H2O is是液体。

    210 运算结果是 1024.

    插入链接与图片

    链接: link.

    图片: Alt

    带尺寸的图片: Alt

    居中的图片: Alt

    居中并且带尺寸的图片: Alt

    当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

    如何插入一段漂亮的代码片

    博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

    // An highlighted block
    var foo = 'bar';
    

    生成一个适合你的列表

    • 项目
      • 项目
        • 项目
    1. 项目1
    2. 项目2
    3. 项目3
    • 计划任务
    • 完成任务

    创建一个表格

    一个简单的表格是这么创建的:

    项目 Value
    电脑 $1600
    手机 $12
    导管 $1

    设定内容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列 第二列 第三列
    第一列文本居中 第二列文本居右 第三列文本居左

    SmartyPants

    SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

    TYPE ASCII HTML
    Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
    Quotes "Isn't this fun?" “Isn’t this fun?”
    Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

    创建一个自定义列表

    Markdown
    Text-to-HTML conversion tool
    Authors
    John
    Luke

    如何创建一个注脚

    一个具有注脚的文本。2

    注释也是必不可少的

    Markdown将文本转换为 HTML

    KaTeX数学公式

    您可以使用渲染LaTeX数学表达式 KaTeX:

    Gamma公式展示 Γ(n)=(n1)!nN\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N 是通过欧拉积分

    Γ(z)=0tz1etdt. \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.

    你可以找到更多关于的信息 LaTeX 数学表达式here.

    新的甘特图功能,丰富你的文章

    Mon 06Mon 13Mon 20已完成 进行中 计划一 计划二 现有任务Adding GANTT diagram functionality to mermaid
    • 关于 甘特图 语法,参考 这儿,

    UML 图表

    可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图:

    张三李四王五你好!李四, 最近怎么样?你最近怎么样,王五?我很好,谢谢!我很好,谢谢!李四想了很长时间, 文字太长了不适合放在一行.打量着王五...很好... 王五, 你怎么样?张三李四王五

    这将产生一个流程图。:

    链接
    长方形
    圆角长方形
    菱形
    • 关于 Mermaid 语法,参考 这儿,

    FLowchart流程图

    我们依旧会支持flowchart的流程图:

    Created with Raphaël 2.2.0开始我的操作确认?结束yesno
    • 关于 Flowchart流程图 语法,参考 这儿.

    导出与导入

    导出

    如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

    导入

    如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
    继续你的创作。


    1. mermaid语法说明 ↩︎

    2. 注脚的解释 ↩︎

    展开全文
  • 东莞市富卡信息科技有限公司 物业管理云平台解决方案-富其平台fookii 联系人谭生 声明本文档所有内容及图片属富卡信息有限公司版权所有未经书面授权请勿转载 电话18566195381
  • 头像上传编辑器是一款支持本地上传、预览、视频拍照和网络加载的flash头像编辑上传插件,可缩放、裁剪、旋转、定位和调色等...小巧的身材:文件大小仅仅只有 50 KB,而新浪的头像编辑器组件有 58.1 KB,更有甚者达...
  • EditorX是DevUI开发的一款好用、易用、功能强大的文本编辑器,它的底层基于Quill,并对做了大量扩展,以增强编辑器的能力。 Quill是一款API驱动、支持格式和模块定制的开源Web文本编辑器,目前在..

    DevUI是一支兼具设计视角和工程视角的团队,服务于华为云DevCloud平台和华为内部数个中后台系统,服务于设计师和前端工程师。
    官方网站:devui.design
    Ng组件库:ng-devui(欢迎Star)

    引言

    本文基于DevUI的富文本编辑器开发实践Quill源码写成。

    EditorX是DevUI开发的一款好用、易用、功能强大的富文本编辑器,它的底层基于Quill,并对其做了大量扩展,以增强编辑器的能力。

    Quill是一款API驱动、支持格式和模块定制的开源Web富文本编辑器,目前在Github的Star数超过25k

    如果还没有接触过Quill,建议先去Quill官网了解下它的基本概念。

    通过阅读本文,你将收获:

    1. 了解Quill模块是什么,怎么配置Quill模块
    2. 为什么要创建Quill模块,怎么创建自定义Quill模块
    3. Quill模块如何与Quill进行通信
    4. 深入了解Quill的模块化机制

    Quill模块初探

    使用Quill开发过富文本应用的人,应该都对Quill的模块有所了解。

    比如,当我们需要定制自己的工具栏按钮时,会配置工具栏模块:

    var quill = new Quill('#editor', {
      theme: 'snow',
      modules: {
        toolbar: [['bold', 'italic'], ['link', 'image']]
      }
    });

    其中的modules参数就是用来配置模块的。

    toolbar参数用来配置工具栏模块,这里传入一个二维数组,表示分组后的工具栏按钮。

    渲染出来的编辑器将包含4个工具栏按钮:

    要看以上Demo,请怒戳配置工具栏模块

    Quill模块是一个普通的JS类

    那么Quill模块是什么呢?我们为什么要了解和使用Quill模块呢?

    Quill模块其实就是一个普通的JavaScript类,有构造函数,有成员变量,有方法。

    以下是工具栏模块的大致源码结构:

    class Toolbar {
      constructor(quill, options) {
        // 解析传入模块的工具栏配置(就是前面介绍的二维数组),并渲染工具栏
      }
    
    
      addHandler(format, handler) {
        this.handlers[format] = handler;
      }
      ...
    }

    可以看到工具栏模块就是一个普通的JS类。在构造函数中传入了quill的实例和options配置,模块类拿到quill实例就可以对编辑器进行控制和操作。

    比如:工具栏模块会根据options配置构造工具栏容器,将按钮/下拉框等元素填充到该容器中,并绑定按钮/下拉框的处理事件。最终的结果就是在编辑器主体上方渲染了一个工具栏,可以通过工具栏按钮/下拉框给编辑器内的元素设置格式,或者在编辑器中插入新元素。

    Quill模块的功能很强大,我们可以利用它来扩展编辑器的能力,实现我们想要的功能。

    除了工具栏模块之外,Quill还内置了一些很实用的模块,我们一起来看看吧。

    Quill内置模块

    Quill一共内置6个模块:

    1. Clipboard 粘贴版
    2. History 操作历史
    3. Keyboard 键盘事件
    4. Syntax 语法高亮
    5. Toolbar 工具栏
    6. Uploader 文件上传

    Clipboard、History、Keyboard是Quill必需的内置模块,会自动开启,可以配置但不能取消。其中:

    Clipboard模块用于处理复制/粘贴事件、HTML元素节点的匹配以及HTML到Delta的转换。

    History模块维护了一个操作的堆栈,记录了每一次的编辑器操作,比如插入/删除内容、格式化内容等,可以方便地实现撤销/重做等功能。

    Keyboard模块用于配置键盘事件,为实现快捷键提供便利。

    Syntax模块用于代码语法高亮,它依赖外部库highlight.js,默认关闭,要使用语法高亮功能,必须安装highlight.js,并手动开启该功能。

    其他模块不多做介绍,想了解可以参考Quill的模块文档

    Quill模块的配置

    刚才提到Keyboard键盘事件模块,我们再举一个例子,加深对Quill模块配置的理解。

    Keyboard模块默认支持很多快捷键,比如:

    1. 加粗的快捷键是Ctrl+B;
    2. 超链接的快捷键是Ctrl+K;
    3. 撤销/回退的快捷键是Ctrl+Z/Y。

    但它不支持删除线的快捷键,如果我们想定制删除线的快捷键,假设是Ctrl+Shift+S,我们可以这样配置:

    modules: {
      keyboard: {
        bindings: {
          strike: {
            key: 'S',
            ctrlKey: true,
            shiftKey: true,
            handler: function(range, context) {
              const format = this.quill.getFormat(range);
              this.quill.format('strike', !format.strike);
            }
          },
        }
      },
      toolbar: [['bold', 'italic', 'strike'], ['link', 'image']]
    }

    要看以上Demo,请怒戳配置键盘模块

    在使用Quill开发富文本编辑器的过程中,我们会遇到各种模块,也会创建很多自定义模块,所有模块都是通过modules参数进行配置的。

    接下来我们将尝试创建一个自定义模块,加深对Quill模块和模块配置的理解。

    创建自定义模块

    通过上一节的介绍,我们了解到其实Quill模块就是一个普通的JS类,并没有什么特殊的,在该类的初始化参数中会传入Quill实例和该模块的options配置参数,然后就可以控制并增强编辑器的功能。

    当Quill内置模块无法满足我们的需求时,就需要创建自定义模块来实现我们想要的功能。

    比如:在EditorX富文本组件中有一个统计编辑器当前字数的功能,该功能就是通过自定义模块来实现的,下面我们将一步一步介绍如何将改该功能封装成独立的Counter模块。

    创建一个Quill模块分三步:

    第一步:创建模块类

    新建一个JS文件,里面是一个普通的JavaScript类。

    class Counter {
      constructor(quill, options) {
        console.log('quill:', quill);
        console.log('options:', options);
      }
    }
    
    export default Counter;

    这是一个空类,什么都没有,只是在初始化方法中打印了Quill实例和模块的options配置信息。

    第二步:配置模块参数

    modules: {
      toolbar: [
        ['bold', 'italic'],
        ['link', 'image']
      ],
      counter: true
    }

    我们先不传配置数据,只是简单地将该模块启用起来,结果发现并没有打印信息。

    第三步:注册模块

    要使用一个模块,需要在Quill初始化之前先调用Quill.register方法注册该模块类(后面我们详细介绍其中的原理),并且由于我们需要扩展的是模块(module),所以前缀需要以modules开头:

    import Quill from 'quill';
    import Counter from './counter';
    Quill.register('modules/counter', Counter);

    这时我们能看到信息已经打印出来。

    添加模块的逻辑

    这时我们在Counter模块中加点逻辑,用于统计当前编辑器内容的字数:

    constructor(quill, options) {
      this.container = quill.addContainer('ql-counter');
      quill.on(Quill.events.TEXT_CHANGE, () => {
        const text = quill.getText(); // 获取编辑器中的纯文本内容
        const char = text.replace(/\s/g, ''); // 使用正则表达式将空白字符去掉
        this.container.innerHTML = `当前字数:${char.length}`;
      });
    }

    在Counter模块的初始化方法中,我们调用Quill提供的addContainer方法,为编辑器增加一个空的容器,用于存放字数统计模块的内容,然后绑定编辑器的内容变更事件,这样当我们在编辑器中输入内容时,字数能实时统计。

    在Text Change事件中,我们调用Quill实例的getText方法获取编辑器里的纯文本内容,然后用正则表达式将其中的空白字符去掉,最后将字数信息插入到字符统计的容器中。

    展示的大致效果如下:

    要看以上Demo,请怒戳自定义字符统计模块

    模块加载机制

    对Quill模块有了初步的理解之后,我们就会想知道Quill模块是如何运作的,下面将从Quill的初始化过程切入,通过工具栏模块的例子,深入探讨Quill的模块加载机制。(本小结涉及Quill源码的解析,有不懂的地方欢迎留言讨论)

    Quill类的初始化

    当我们执行new Quill()的时候,会执行Quill类的constructor方法,该方法位于Quill源码的core/quill.js文件中。

    初始化方法的大致源码结构如下(移除模块加载无关的代码):

    constructor(container, options = {}) {
      this.options = expandConfig(container, options); // 扩展配置数据,包括增加主题类等
      ...
      this.theme = new this.options.theme(this, this.options); // 1.使用options中的主题类初始化主题实例
    
      // 2.增加必需模块
      this.keyboard = this.theme.addModule('keyboard');
      this.clipboard = this.theme.addModule('clipboard');
      this.history = this.theme.addModule('history');
    
      this.theme.init(); // 3.初始化主题,这个方法是模块渲染的核心(实际的核心是其中调用的addModule方法),会遍历配置的所有模块类,并将它们渲染到DOM中
      ... 
    }

    Quill在初始化时,会使用expandConfig方法对传入的options进行扩展,加入主题类等元素,用于初始化主题。(不配置主题也会有默认的BaseTheme主题)

    之后调用主题实例的addModule方法将内置必需模块挂载到主题实例中。

    最后调用主题实例的init方法将所有模块渲染到DOM。(后面会详细介绍其中的原理)

    如果是snow主题,此时将会看到编辑器上方出现工具栏:

    如果是bubble主题,那么当选中一段文本时,会出现工具栏浮框:

    接下来我们以工具栏模块为例,详细介绍Quill模块的加载和渲染原理。

    工具栏模块的加载

    以snow主题为例,当初始化Quill实例时配置以下参数:

    {
      theme: 'snow',
      modules: {
        toolbar: [['bold', 'italic', 'strike'], ['link', 'image']]
      }
    }

    Quill的constructor方法中获取到的this.theme是SnowTheme类的实例,执行this.theme.init()方法时调用的是其父类Theme的init方法,该方法位于core/theme.js文件。

    init() {
      // 遍历Quill options中的modules参数,将所有用户配置的modules挂载到主题类中
      Object.keys(this.options.modules).forEach(name => {
        if (this.modules[name] == null) {
          this.addModule(name);
        }
      });
    }

    它会遍历options.modules参数中的所有模块,调用BaseTheme的addModule方法,该方法位于themes/base.js文件。

    addModule(name) {
      const module = super.addModule(name);
      if (name === 'toolbar') {
        this.extendToolbar(module);
      }
      return module;
    }

    该方法会先执行其父类的addModule方法,将所有模块初始化,如果是工具栏模块,则会在工具栏模块初始化之后对工具栏模块进行额外的处理,主要是构建icons和绑定超链接快捷键。

    我们再回过头来看下BaseTheme的addModule方法,该方法是模块加载的核心

    该方法前面我们介绍Quill的初始化时已经见过,加载三个内置必需模块时调用过。其实所有模块的加载都会经过该方法,因此有必要研究下这个方法,该方法位于core/theme.js

    addModule(name) {
      const ModuleClass = this.quill.constructor.import(`modules/${name}`); // 导入模块类,创建自定义模块的时候需要通过Quill.register方法将类注册到Quill,才能导入
      // 初始化模块类
      this.modules[name] = new ModuleClass(
        this.quill,
        this.options.modules[name] || {},
      );
      return this.modules[name];
    }

    addModule方法会先调用Quill.import方法导入模块类(通过Quill.register方法注册过的才能导入)。

    然后初始化该类,将其实例挂载到主题类的modules成员变量中(此时该成员变量已有内置必须模块的实例)。

    以工具栏模块为例,在addModule方法中初始化的是Toolbar类,该类位于modules/toolbar.js文件。

    class Toolbar {
      constructor(quill, options) {
        super(quill, options);
    
        // 解析modules.toolbar参数,生成工具栏结构
        if (Array.isArray(this.options.container)) {
          const container = document.createElement('div');
          addControls(container, this.options.container);
          quill.container.parentNode.insertBefore(container, quill.container);
          this.container = container;
        } else {
          ...
        }
    
        this.container.classList.add('ql-toolbar');
    
        // 绑定工具栏事件
        this.controls = [];
        this.handlers = {};
        Object.keys(this.options.handlers).forEach(format => {
          this.addHandler(format, this.options.handlers[format]);
        });
        Array.from(this.container.querySelectorAll('button, select')).forEach(
          input => {
            this.attach(input);
          },
        );
        ...
      }
    }

    工具栏模块初始化时会先解析modules.toolbar参数,调用addControls方法生成工具栏按钮和下拉框(基本原理就是遍历一个二维数组,将它们以按钮/下拉框形式插入到工具栏中),并为它们绑定事件。

    function addControls(container, groups) {
     if (!Array.isArray(groups[0])) {
      groups = [groups];
     }
     groups.forEach(controls => {
      const group = document.createElement('span');
      group.classList.add('ql-formats');
      controls.forEach(control => {
        if (typeof control === 'string') {
          addButton(group, control);
        } else {
          const format = Object.keys(control)[0];
          const value = control[format];
          if (Array.isArray(value)) {
            addSelect(group, format, value);
          } else {
            addButton(group, format, value);
          }
        }
      });
      container.appendChild(group);
     });
    }

    工具栏模块就这样被加载并渲染到富文本编辑器中,为编辑器操作提供便利。

    现在对模块的加载过程做一个小结:

    1. 模块加载的起点是Theme类的init方法,该方法将option.modules参数里配置的所有模块加载到主题类的成员变量modules中,并与内置必需模块合并;
    2. addModule方法会先通过import方法导入模块类,然后通过new关键字创建模块实例;
    3. 创建模块实例时会执行模块的初始化方法,执行模块的具体逻辑。

    以下是模块与编辑器实例的关系图:

    总结

    本文先通过2个例子简单介绍了Quill模块的配置方法,让大家对Quill模块有个直观初步的印象。

    然后通过字符统计模块这个简单的例子介绍如何开发自定义Quill模块,对富文本编辑器的功能进行扩展。

    最后通过剖析Quill的初始化过程,逐步切入Quill模块的加载机制,并详细阐述了工具栏模块的加载过程。

    加入我们

    我们是DevUI团队,欢迎来这里和我们一起打造优雅高效的人机设计/研发体系。招聘邮箱:muyang2@huawei.com。

    文/DevUI Kagol

    展开全文
  • 大量的组织正在将它们的应用程序构建成客户端,其中许多组织将应用程序建立在RCP(EclipseRichClientPlatform)的基础上。术语客户端首先表明此应用程序为用户提供丰富的体验;其次,它还表明此应用程序是某台...
  • 客户端技术与RCP介绍(转载)

    千次阅读 2010-09-16 12:54:00
    本文我们要了解客户端技术以及Eclipse上开发客户端程序的平台RCP。那什么是客户端技术和RCP呢?首先,我们来回顾一下客户端技术的背景与来源。1.1.1 系统架构的发展历程应用程序至今为止历经了几次系统架构...
  • 头像上传编辑器是一款支持本地上传、预览、视频拍照和网络加载的flash头像编辑上传插件,可缩放、裁剪、旋转、定位和调色等... 小巧的身材:文件大小仅仅只有 50 KB,而新浪的头像编辑器组件有 58.1 KB,更有甚者...
  • 2019年3月8日,腾讯又收获一家上市公司:国内首家互联网证券平台富途证券母公司途控股登陆纳斯达克,上市打破了最近一年来中概股上市即破发的魔咒,开盘大涨23%,盘中股价一度飙涨45%,最终收报于15.32美元,较...
  • 尽管Eclipse RCP和Netbeans RCP是已建立的平台,但想法是建立一个轻量级的框架来异步处理组件,类似于Web组件。 开发人员在线程主题上的工作应较少,并且应该能够自己对应用程序的消息流进行建模。 这些以及许多...
  • jQuery是继Prototype之后又一个优秀的JavaScript库,凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax的操作。且独特而又优雅的代码风格...
  • 面向Flex/Java EE应用的全新企业平台

    千次阅读 2011-07-28 22:10:42
    本文来源于我在InfoQ中文站翻译的文章,原文地址是:http://www.infoq.com/cn/news/2011/07/graniteds-ep上周,Granite Data Services发布了用于构建Internet应用的企业平台(后端使用Flex与Java E
  • vue 后台管理系统文本组件(四)UEditor(集成 135 编辑器插件) 简介 135 编辑器应用于微信文章、企业网站、以及论坛等多种平台,支持秒刷、一键排版、全文配色、公众号管理、微信变量回复、48 小时群发、定时...
  • 这段时间一件事儿火了,说是37岁的刘凌峰患胃癌病情危重,通过朋友圈发布了大量对生命的感悟、对亲人的歉疚,在网上引发轩然大波,此事经过媒体报道后,刘凌峰也顺利通过众筹平台筹集资金30万。然而事情随后出现反转...
  • 结合了视频语音等媒体通讯和等传统游戏的特点,以专业的视频语音直播为基础,各种极具可玩性和创造性的互动游戏为核心,致力于打造一个综合型的互联网媒体娱乐平台。 我嗨娱乐平台功能特色: 这是一款真人...
  • 由Macromedia, Intel发起 作者:Joshua Duhl 日期:2003.11 译者:lwz7512 译期:2004.11 ...结果经常是一种令人郁闷的、困惑的或者不讨人喜欢的用户体验,而且导致顾客不愉快,销量下降,成本增加...
  • 技术存在着一定的周期性。在经历了一段由瘦客户端统治的时期后,客户端技术开始了它的回归。大量的组织正在将它们的应用程序构建成客户端,其中许多组织将应用程序建立在RCP(Eclipse Rich Client Platform...
  • 研究了xPC目标的C API接口编程及其API函数以及labview如何调用DLL动态链接库,建立了基于labview的xPC宿主机控制及遥测平台,该平台用于某卫星的姿轨控半物理仿真系统的地面验证,为提供了功能强大并于人性化的...
  • jQuery是继Prototype之后又一个优秀的JavaScript库,凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax的操作。且独特而又优雅的代码风格...
  • Eclipse RCP:用于构建平台平台 文章来源:BEA中国 技术存在着一定的周期性。在经历了一段由瘦客户端统治的时期后,...大量的组织正在将它们的应用程序构建成客户端,其中许多组织将应用程序建立在RCP(Eclip...
  • VR行业平台與双创

    2016-10-09 04:31:59
    by 高煥堂 2016/9/28 我拿平台上的R素材来支持大学师生们的创业,当我们学生会做烘焙专业的多样化呈现了,有VC想做护理专业,VC投$,学生们迅速复制技能和A素材,$就入账了,学生们很开心呀。一旦360行专业皆可...
  • 基于Eclipse RCP的商务信息管理平台中加密模块的设计与实现,金星善,,RCP (Rich Client Platform) 是基于Eclipse开发平台而推出的一套用来开发客户端程序的应用框架,主要功能是能够为开发人员提供一个快速�...
  • 标题可能写大了 ,,其实是我还是新手,,自学ejb,打算做的一个算是结业的小项目,请各位多多拍砖啊感激不尽~正在看的书是精通ejb3.0和那本ejb基础 ,现有书中代码 :一个简易购物平台,实现了选购,下单等功能,打算模仿淘宝,...
  • Flutter 自 2015 年推出以来,凭借着极高的开发交付效率,优秀的多平台能力,以及强大的 UI 表现力,受到了许多开发者们的推崇。虽然 Flutter 的确仍旧存在一些问题,但依然是不少开发者们在跨平台开发时的第一...
  • 在OpenJDK的最近一封邮件中,来自Oracle client Java的首席架构师Richard Bair透露了他们对其富互联网应用程序平台JavaFX的一些开源计划,暗示JFX开源需要更加透明,并计划将所有的封闭代码都用开源代码来取代。...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 250
精华内容 100
关键字:

富其平台