# .canvas文件

受益于尤大的vue框架,许许多多经历过从原生js -> jquery -> angularjs、extjs、backbone... -> vue、react、angular...的前端开发者们,极大的提高了开发效率,vue框架以其简洁的api,优秀的性能,俘获了一众前端人的心,笔者也是其中之一,最主要的,这是国人实现的前端框架(赞!!!)。

如果你之前有过前端框架使用经验,那么编写.canvas对你来说,学习负担为0,为了考虑前端新手,笔者还是会对.canvas的文件结构做下说明。

.canvas文件内容,应主要包含两部分:视图(canvas节点)和逻辑(script节点)。

# <canvas>

canvas节点主要用于描述绘制内容,作用与 <html>类似,根节点canvas本身接收width、height两个属性用作后续画布的宽高属性。

在canvas节点内部,可以使用内置的元素节点或自定义的元素节点来进行绘制。

举个例子:

<canvas width="300" height="50">
    <tag attr1="attr1Val" :attr2="attr2Val" @eventName="handleEvent"></tag>
</canvas>

tag: 元素名称

attr1: 静态属性名称

attr1Val: 静态属性值

attr2: 动态属性名称

attr2Val: 动态属性值

eventName: 元素绑定的事件名称

handleEvent: 元素绑定的事件

# <script>

script节点主要用于处理业务逻辑,如:动态绑定值、事件接受及处理等。

注:script中支持canvas绘制的生命周期钩子函数回调,目前仅支持created、mounted两个钩子。

举个例子:

<canvas width="300" height="50">
    	<tag attr1="attr1Val" :attr2="attr2Val" @eventName="handleEvent"></tag>
</canvas>
<script>
	export default {
		data: {
			attr2Val: 'hello world'
		},
		methods: {
			handleEvent() {
				console.log('hello world!')
			}
		}
	}
</script>