做网站主要用哪种语言,西青房地产网站建设,太原建站模板网站,网站如何制作建设1.虚拟节点
虚拟节点#xff08;dom#xff09;本质上就是一个普通的JS对象#xff0c;用于描述视图的界面结构
2.渲染函数render()#xff1a;接收一个 createElement()函数创建的VNode
Vue.component(board, {render: function(createElement) {return cr…1.虚拟节点
虚拟节点dom本质上就是一个普通的JS对象用于描述视图的界面结构
2.渲染函数render()接收一个 createElement()函数创建的VNode
Vue.component(board, {render: function(createElement) {return createElement(div, [createElement(h1, 这是一个h1标签)]);}
});
可以使用render()对页面进行编程式的修改。字符串模板的代替方案允许你发挥 JavaScript 最大的编程能力。
render()渲染函数接收一个 createElement 方法作为第一个参数用来创建 VNode。如果组件是一个函数组件渲染函数还会接收一个额外的 context 参数。
createElement()参数
第一个参数标签名称或对象或async 函数第二个数据对象可选第三个参数子级虚拟节点由 createElement() 构建而成也可以是使用字符串来生成“文本虚拟节点”
createElement(// {String | Object | Function}// 一个 HTML 标签名、组件选项对象或者// resolve 了上述任何一种的一个 async 函数。必填项。div,// {Object}// 一个与模板中 attribute 对应的数据对象。可选。{// (详情见下一节)},// {String | Array}// 子级虚拟节点 (VNodes)由 createElement() 构建而成// 也可以使用字符串来生成“文本虚拟节点”。可选。[先写一些文字,createElement(h1, 一则头条),createElement(MyComponent, {props: {someProp: foobar}})]
) 3.数据对象
数据对象可以是一下内容class,style,普通的 HTML attribute(id等)props组件DOM property事件(on)nativeOn(监听原生事件)directives指令slotscopedSlots作用域插槽{ name: props VNode | ArrayVNode }ref,key,refInFor(为true时如果有多个ref会变成一个数组)
{// 与 v-bind:class 的 API 相同// 接受一个字符串、对象或字符串和对象组成的数组class: {foo: true,bar: false},// 与 v-bind:style 的 API 相同// 接受一个字符串、对象或对象组成的数组style: {color: red,fontSize: 14px},// 普通的 HTML attributeattrs: {id: foo},// 组件 propprops: {myProp: bar},// DOM propertydomProps: {innerHTML: baz},// 事件监听器在 on 内// 但不再支持如 v-on:keyup.enter 这样的修饰器。// 需要在处理函数中手动检查 keyCode。on: {click: this.clickHandler},// 仅用于组件用于监听原生事件而不是组件内部使用// vm.$emit 触发的事件。nativeOn: {click: this.nativeClickHandler},// 自定义指令。注意你无法对 binding 中的 oldValue// 赋值因为 Vue 已经自动为你进行了同步。directives: [{name: my-custom-directive,value: 2,expression: 1 1,arg: foo,modifiers: {bar: true}}],// 作用域插槽的格式为// { name: props VNode | ArrayVNode }scopedSlots: {default: props createElement(span, props.text)},// 如果组件是其它组件的子组件需为插槽指定名称slot: name-of-slot,// 其它特殊顶层 propertykey: myKey,ref: myRef,// 如果你在渲染函数中给多个元素都应用了相同的 ref 名// 那么 $refs.myRef 会变成一个数组。refInFor: true
}
4.实例 board/boardboard2/board2
....
script
// 两个全局注入的组件
Vue.component(board, {render: function(createElement) {// 组件有一个div元素div下一个h1标签return createElement(div, [createElement(h1, 这是一个h1标签)]);}
});
Vue.component(board2, {render: function(createElement) {// 组件下一个div元素里面是一个文本节点通过对象数据config设置了class属性和click事件return createElement(div, config ,字符串的文本节点);}
});const config {class: {foo: true,bar: false},on: {click: function(){console.log(文本节点点击事件测试);}}
}
/script