vue&jsx文档

vue实例属性

// App.ts
import hBtn from './components/hBtn'
import hUl from './components/hUl'export default {data(){return {theme: "mdui-theme-pink",accent: "mdui-theme-accent-pink",users:['aoo', 'boo', 'coo']}},methods:{},render(h){return h('div',{'class':[this.theme, this.accent],attrs:{id: 'app'}},[h(hBtn,{'class':['mdui-color-theme-accent']}),h('ul',{},[h('li',{'class':{'text-danger':true},style:{color:'red';}} ,'start'),this.users.length? this.users.map((key, index)=>{return h('li',key)}): h('li','v-if else 这样写'),h('li', 'end')]),h(hUl,{attrs:{users:['user1', 'user2']}})]);// return end
}, //render end
}

// src/components/hBtn.tsvar Text = {// 在内部定义了一个组件props:['body'],render(h){return h('span',[this.body])}
}export default {data(){return {myName: "ajanuw"}},methods:{echo (num:number):void {alert(num)}},mounted(){console.log( '组件渲染完成!!')},render(h) {return h('button',{// 和`v-bind:class`一样的 API'class':['mdui-btn'],style: {// 定义 stylefontSize: '22px'},attrs:{// 定义attribute, 可以利用这个更组件传递 propsid: "ajanuw"},domProps: {// DOM 属性// innerHTML 会替换组件内部的赋值},on: {click: this.echo.bind(null, 1995)}},[h(Text, {attrs:{body:"this a "},ref: 'start'} ),h(Text, {attrs:{// 使用text组件, 传递propsbody:this.myName}, ref: 'end'} )]);}
}

// src/components/hUl.ts
// 渲染一个列表var list = {props:['body']render(h){return h('li', this.body)}
};export default {props:['users'],render(h){if(this.users){if(this.users.length){return h('ul',{},[this.users.map((key, index)=>{return h(list,{attrs:{body: key}})})])}else{return h('ul', {}, [return h(list, {attrs:{body: "没有数据哦!"}})])}}}, //render end
}

下面是jsx

vue init webpack vueJsx
cd vueJsx
npm install babel-plugin-syntax-jsx babel-plugin-transform-vue-jsx babel-helper-vue-jsx-merge-props babel-preset-env --save-dev
npm i
npm start

// .babelirc{"presets": ["env"],"plugins": ["transform-vue-jsx"]
}

// App.jsvar Text = {props:['body'],render(h){return(<ponClick={ ()=> console.log( this.body)}style={{color:'red'}}>hello {this.body}</p>);// return end}
}
var List = {props:['body'],render(h){return (<li onClick={()=> console.log( this.body)}>{ this.body}</li>);}
}export default {data(){return {name:"ajanuw",users: ['aoo', 'boo']}},methods:{echo(name){alert( name)}},render(h){return (<div id="app"><Text body={this.name}/><ul>{this.users.length !==0? this.users.map((key, index)=>{return <List body={key} key={index}/>}): <li>没有数据</li>}</ul></div>);// return end}, // render end
}

"vue": "^2.5.2" 发现自带 jsx 模块。。。

把App.vue 改成 App.js 文件

// App.js
export default {data(){return {name: 'ajanuw'}},render(){return (<div id="app"><p>hello {this.name}</p></div>)}
}
// main.js
import App from './App'     =>     import App from './App.js'

转载于:https://www.cnblogs.com/ajanuw/p/8011058.html

vue使用render渲染jsx相关推荐

  1. Vue通过render渲染$Notice

    主要是通过vue的render函数实时渲染$Notice的内容, 基于iview UI的Notice通知提醒. 通过直接调用以下方法来使用组件: this.$Notice.open(config) t ...

  2. 02 Vue进阶 render和jsx语法使用

    一.render语法 render.js import Vue from 'vue'const component = {props: ['props1'],name: 'comp',// templ ...

  3. Vue.js 2.x render 渲染函数 JSX

    Vue.js 2.x render 渲染函数 & JSX Vue绝大多数情况下使用template创建 HTML.但是比如一些重复性比较高的场景,需要运用 JavaScript 的完全编程能力 ...

  4. vue 渲染函数处理slot_vue render 渲染函数

    vue render 渲染函数 经常看到使用render渲染函数的示例,而且在一些特殊情况下,确实更好使用,可以更加有效地细分组件,因而借助vue-element-admin来学习一波 render函 ...

  5. Vue render渲染函数

    这里写自定义目录标题 Vue render渲染函数 基础 render渲染函数的作用 render函数讲解 render和template的区别 render举例 Vue render渲染函数 基础 ...

  6. jsx怎么往js里传参数_实践Vue 3.0做JSX(TSX)风格的组件开发

    作者:莫夭 转发链接:https://zhuanlan.zhihu.com/p/102668383 前言 我日常工作都是使用React来做开发,但是我对React一直不是很满意,特别是在推出React ...

  7. 前端vue适配不同的分辨率_浅析 React / Vue 跨端渲染原理与实现

    当下的前端同学对 React 与 Vue 的组件化开发想必不会陌生,RN 与 Weex 的跨界也常为我们所津津乐道.UI 框架在实现这样的跨端渲染时需要做哪些工作,其技术方案能否借鉴乃至应用到我们自己 ...

  8. vue tree组件_使用Vue 3.0做JSX(TSX)风格的组件开发

    前言 我日常工作都是使用React来做开发,但是我对React一直不是很满意,特别是在推出React Hooks以后. 不可否认React Hooks极大地方便了开发者,但是它又有非常多反直觉的地方, ...

  9. 二次封装Element Ui的Table中使用render渲染函数

    render函数的使用 render在element UI中的使用 render函数是什么 具体参数用法 render在element UI中的使用 {prop: 'button',label: '操 ...

最新文章

  1. MySql按日期进行统计(前一天、本周、某一天)[转载]
  2. RedHat7.0更新yum源(踩过的坑)
  3. NYOJ 1068 ST(线段树之 成段更新+区间求和)
  4. python求不规则图形面积_python 微积分之---黎曼和
  5. Android ADB
  6. CUDA中的一些基本概念
  7. python—pickle模块的dump与load函数
  8. Jmeter+badboy
  9. 「斑愿称为最肝」小狮子前端知识食谱 / 生日之际,好运分享 / 秋招和你手摸手入大厂【史上最全指北】 | CSDN技术征文
  10. wz框架登录功能详解——demo1
  11. 小龙女,杨过跳崖真相
  12. 云南省昭通市领导一行莅临上海控安调研指导
  13. 效率之王!这些令人惊叹的开发工具不可不知!
  14. buctoj2021年ACM竞赛班训练(七)题解
  15. 爬虫练习(3)-- 36Kr 站点正则和 ajax 混合
  16. 大数据之VMware和centos7安装
  17. 纪中9日游(2019.7.5~7.13)
  18. 在探索中享受童年般的乐趣 |Mixlab的故事
  19. 微软行星云计算Planetary Computer——从 STAC API 读取数据
  20. MATLAB 变量和数据类型举例

热门文章

  1. (多线程)leetcode1195. 交替打印字符串 最简单解法一个变量搞定
  2. 剑指offer(刷题21-30)--c++,Python版本
  3. 机器学习知识总结系列- 基本概念(1-0)
  4. android二级联动购物车,Android实现二级购物车的全选加反选、总价功能
  5. STL源码剖析 内存基本处理工具 初始化空间的五个函数
  6. C语言 项目 CRM系统(客户信息管理系统)
  7. Java 中sleep()与wait()的区别
  8. 延长汽车寿命的6个良好习惯
  9. 《OpenCL异构计算》新版中译本派送中!
  10. 算术编码(Arithmetic Coding)源代码