vecty.js_基于 gopherjs 的一种类似 React 的开发框架

更新日期:2020年09月02日 投稿作者:分类目录网 围观人数:22245

vecty.js

vecty简介:基于 gopherjs 的一种类似 React 的开发框架

gopherjs 是把 go 编译为 js 的工具。 vecty 是基于 gopherjs 的一种类似 react 的开发框架。


安装 gopherjs 和 vecty

go get -u github.com/gopherjs/gopherjs
go get -u github.com/gopherjs/vecty

vecty 自带的例子在 example 目录,有 todomvc 和 markdown 编辑器。


简单的例子

package main

import (
	"strconv"

	v "github.com/gopherjs/vecty"
	"github.com/gopherjs/vecty/elem"
	"github.com/gopherjs/vecty/event"
)

func main() {
	v.SetTitle("title message swt")
	v.RenderBody(&MyComponent{})
}

type MyComponent struct {
	v.Core
	btnCount int
}

func (mc *MyComponent) onButtonClick(e *v.Event) {
	println("click my component button")
	mc.btnCount++
	v.Rerender(mc)
}

func (mc *MyComponent) Render() v.ComponentOrhtml {
	return elem.Body(
		elem.Button(
			v.Markup(
				event.Click(mc.onButtonClick),
			),
			v.Text("btn"+strconv.Itoa(mc.btnCount)),
		),
	)
}


运行它

在 $GOPATH/src/ele/gopherjs/t1 文件写下这个文件,命名为 t1.go。然后 cd 到 t1 文件夹,运行命令 gopherjs serve,将会在 localhost:8080 运行服务,使用浏览器访问 http://localhost:8080/ ,则可以查看运行结果。


解释

这个例子中,定义了组件 MyComponent,需要内嵌 vecty.Core 结构,实现 vecty.Component 接口要求的 Render 方法。

Render 方法负责构建代表组件的 html。

再看 main 方法,调用 vecty.SetTitle 方法设置标题,调用 vecty.RenderBody(&MyComponent{}) 方法把 MyCompoent 组件渲染为文档的 body。

回到 MyComponent 的 Render 方法,在 Button 内包含 Markup, Markup 内包括 event.Click,给 Button 附加了 click 事件处理函数 onButtonClick。

事件处理函数 onButtonClick 修改了此组件的 btnCount 字段,然后调用 vecty.Rerender 方法重新渲染此组件,界面上就能看到按钮上的文字被改变了。


声明:本站资源收集于网络,但不代表本站的观点和立场,具体内容可自行甄别,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!

Agile Lite:一个基于HTML5+CSS3+JS的移动应用开发框架

Agile Lite 是一个基于HTML5+CSS3+JS的移动应用开发框架,同时支持单页和多页模式,并提供无关UI和可扩展的框架结构. Agile Lite 是一个基于HTML5+CSS3+JS的移动应用开发框架,同时支持单页和多页模式,并提供无关UI和可扩展的框架结构 Agile Lite支持jQuery和Zepto双引擎,但是同时仅可以使用其中之一,建议使用jQuery Agile移动应用前端框架既解决了前端UI层的显示,耦合了高性能的UI展示效果,也提供

网站错误放置备案号将被注销备案及罚款

重要通知 | 网站不按要求放置备案信息最高将处一万元罚款 近日,有不少客户收到阿里云备案核查通知,要求 已备案的网站 下方必须显示正确备案编号、并指向工信部指定网址 https://beian.miit.gov.cn/,否则将面临省通信管理局责令整改、并处五千元以上一万元以下罚款的处罚,或应相关监管部门要求,网站有被关闭、备案被取消接入或被注销的风险。

cn、com域名各个状态说明

cn、com域名各个状态说明: 以client开头的状态表示由客户端(注册商)可以增加的状态 以server开头的状态表示服务器端(CNNIC)操作增加的状态 既不以client开头也不以server开头的状态由服务器端管理 域名的状态解释: ok 正常状态 inactive 非激活状态(注册的时候没有填写域名服务器,不能进行解析) clientDeleteProhibited 禁止删除 serverDeleteProhibited 禁止删除 clientUpdateProhi

12个好用的BT种子搜索网站,你用过几个?

BT Kitty https://cnbtkitty.pw/ 专注于提供BT种子搜索和下载的网站,你可以在这里搜索和下载电影、剧集、音乐、图书、图片、综艺、软件、动漫、教程、游戏等资源,BT Kitty 可以说算得上一款BT种子搜索神器、下载利器。 BT Library https://btlibrary.xyz/ 索引了几千万千万BT种子,包括电影、剧