Web前端开发网

fly63.com

首页 资源 工具 文章 教程 栏目
  • 在线搜索
  • 文章标签
  • 广告合作
  • 赞助一下
  • 关于我们
资源推荐
茅茅虫
茅茅虫AI论文写作助手,AIGC论文查重
Trae
字节跳动推出的 AI原生编程工具
腾讯云优惠券
云服务器,云数据库,CDN,域名注册等多种云计算服务
扣子Coze
职场AI,就用扣子
fly63工具箱
简单、易用、便捷的在线工具
堆友AI
零门槛,多风格AI绘画免费生成,电商海报设计神器
宝塔服务器面板
简单好用的服务器运维面板
LiblibAI
一站式AI内容创作生成平台,原创AI模型分享社区
蜂小推
不扣量的项目推广平台
硅云优惠券
领先的基础云计算服务提供商,PHP云虚拟主机第一品牌

资源分类

AI智能 酷站推荐 招聘/兼职 框架/库 模块/管理 移动端UI框架 Web-UI框架 Js插件 Jquery插件 CSS相关 IDE环境 在线工具 图形动效 游戏框架 node相关 调试/测试 在线学习 社区/论坛 博客/团队 前端素材 图标/图库 建站资源 设计/灵感 IT资讯
网站收录 / 问题反馈

fre.js

分享
复制链接
新浪微博
QQ 好友

扫一扫分享

网站地址:https://fre.js.org
GitHub:https://github.com/132yse/fre
网站描述:一个小而美的前端 MVVM 框架
访问官网
GitHub

介绍:

其实,free 是一部动漫名,也是我最喜欢的番没有之一,haru 是我儿子! 


安装:

yarn add fre -S


使用:

import{ observe, html, mount } from './src'

function counter() {
  const data = observe({
    count: 0
  })

  return html`
    <div>
      <h1>${data.count}</h1>
      <button onclick=${() => {data.count++}}>+</button>
      <button onclick=${() => {data.count--}}>-</button>
    </div> 
  `
}

mount(html`<${counter} />`, document.body)


Proxy:

const data = observe({
  count: 0
})

会生成一个全递归的 Proxy 对象,会自动去observe,data 更新会自动触发 rerender,这个更新是准确


fre 提供 JSX-like 的 tagged template 语法,浏览器原生支持,无需编译

建议根据场景选择,webpack 下 JSX 比较合适,浏览器环境肯定要 tagged template(如后端语言的模板引擎)

html`
  <div>
    <h1>${data.count}</h1>
    <button onclick=${() => {data.count++}}>+</button>
    <button onclick=${() => {data.count--}}>-</button>
  </div> 
`

和 jsx 一样,最终会被转换成 h 函数,进而生成 vdom tree

性能不会差,可以粗略理解为 vue 的 compile 过程,如果使用 jsx ,将直接省略这个过程


hooks api

其实这里应该叫做functionalCompoent比较合适,一种新的组件化方案。如下,fre 和 vue、react 不同,fre 的组件是无自身状态、可复用的标记代码块

只有根组件拥有全局状态,但这不妨碍你进行多次 render 创造多个根组件

import{ mount, html, observe } from 'fre'

function counter() {
  const data = observe({
    count: 0
  })

  return html`
    <div>
      ${html`<${count} count=${data.count} />`}
      <button onclick=${() => {data.count++}}>+</button>
      <button onclick=${() => {data.count--}}>-</button>
    </div> 
  `
}

function count(props){
  return html`
    <h1>${props.count}</h1>
  `
}

mount(html`<${counter} />`, document.body)


JSX

默认也对外暴露了 h 函数,可以选用 JSX

import { h } from 'fre'


webpack 需配置:

{
  "plugins": [
    ["transform-react-jsx", { "pragma":"Fre.h" }]
  ]
}


仅供个人学习参考/导航指引使用,具体请以第三方网站说明为准,本站不提供任何专业建议。如果地址失效或描述有误,请联系站长反馈~感谢您的理解与支持!

链接: https://fly63.com/nav/1177

更多»
热门资源
Vue
Vue.js是一套构建用户界面的渐进式JavaScript框架
官网
GitHub
react
Facebook开发的一款高效、灵活、声明式设计的JS库
官网
GitHub
AngularJS
Google推出有条理,可维护,易编程的MVVM框架
官网
GitHub
backbone
提供:模型、集合、视图,开发重量级的javascript应用的框架
官网
GitHub
jquery
一个快速、简洁的JavaScript代码库
官网
GitHub
zepto.js
一个轻量级的针对现代高级浏览器的JavaScript库
官网
GitHub
Ember
JavaScript MVC框架,它用来创建复杂的Web应用程序,消除了样板
官网
GitHub
nw.js
轻量级桌面应用开发的捷径
官网
GitHub
socket.io
一个WebSocket库,包括了客户端的js和服务器端的nodejs
官网
GitHub
nuxt.js
基于 Vue.js 的轻量级、服务端渲染 (SSR) 应用框架
官网
GitHub
Next.js
实现react的服务端渲染的框架
官网
GitHub
Electron
基于Chromium 和 Node.js, 使用 JavaScript, HTML 和 CSS 构建跨平台的桌面应用
官网
GitHub
类似于fre.js的资源
Mpx
滴滴开源小程序框架
官网
GitHub
Cylon.js
用于机器人、物理计算和物联网 (IoT) 的流行 JavaScript 框架
官网
GitHub
bootstrap-vue
Vue.js 2的Twitter Bootstrap 4组件
官网
GitHub
Fortune.js
一个超媒体 API 原型框架
官网
GitHub
anujs
一个高级兼容React16的迷你React 框架
官网
GitHub
PeerJS
一个完整、可配置、易于使用、基于WebRTC的点对点API
官网
GitHub
Mithril.js
一个客户端的 JavaScript MVC 框架
官网
GitHub
ml.js
很多库的一个集合存储库
官网
GitHub
目录

手机扫一扫预览

》
分享组件加载中...
首页 技术导航 在线工具 技术文章 教程资源 前端标签 AI工具集 前端库/框架 实用工具箱 广告合作 关于我们

Copyright © 2018 Web前端开发网提供免费在线工具、编程学习资源(教程/框架/库),内容以学习参考为主,助您解决各类实际问题,快速提升专业能力。