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. java导出excel(easypoi)
  2. [Android实例] 最全的Android开发资源整理--进阶必备
  3. RabbitMQ开发详解
  4. Docker技术快速精通指南
  5. Region使用全解
  6. 细说.NET中的多线程 (四 使用锁进行同步)
  7. swagger-ui多端口自动切换优化
  8. TCP 协议(包含三次握手,四次挥手)
  9. 税控数据接口之XML接口导入
  10. 考研政治(二):马克思主义基本原理
  11. 利用MATLAB解特征方程,并画出特征根的分布,便于分析系统的稳定性
  12. 【GAMES101】作业2--三角形光栅化
  13. 热爱,对待人生的首要态度
  14. RDD:基于内存集群计算的容错抽象。
  15. matlab 将图片转为视频
  16. 警惕股票连续涨停后的跌停情况,需再三注意!(实例)
  17. HCIE课程笔记12-BGP基本配置
  18. datagrid系列之-基本添加行,删除行,插入行,自定义方法
  19. java 组合优与继承_Java中为什么老鸟要告诉你优先使用组合而不是继承?
  20. 您应该获得“超高清” 4K电视吗?

热门文章

  1. python安装requests模块失败_No module named quot;Cryptoquot;,如何安装Python三方模块Crypto...
  2. jeecms导入myeclipse时web-inf下html出错,我部署到myeclipse 出现问题
  3. 排序算法之冒泡排序,选择排序
  4. Maven配置nexus
  5. leetcode217. 存在重复元素(vip题)超简单
  6. 《Head First设计模式》第二章笔记 观察者模式
  7. opencv findContours 报错_acrt_first_block == header
  8. IAP-应用内购买流程
  9. 《Python Cookbook 3rd》笔记(1.3):保留最近N个元素
  10. python实验练习-图书管理系统(使用文件来实现)