vue中render函数解析

render解析

在vue文件中其实是通过读取template再渲染到render函数中,在vue的main.js中初始状态是这样的:

 new  Vue({
     render:h=>(App)
}).$mount('#app')

以上代码可以解析成

 new  Vue({
     render:React.createElement=>{
         return h(App)
     }
}).$mount('#app')

上面是组件的一种写法,如果是标签的话,可以用下面那种写法

 new  Vue({
     render:(h)=>{
         //h有3个参数
         //第一个是要渲染的元素或者组件
         //第二个是属性,用数据对象
         //第三个是子节点内容
         return h{
            'h1',
            {},
            'render函数渲染'
         }
     }
}).$mount('#app')

js后缀文件样式

export default{
  data(){
    return {
       path:'www.baidu.com'
    }
  }
  render(h){
     consoel.log(this.path)
     return h(
       'div',
       {},
       [
         h('img',{
            attrs:this.path
         }),
         h('h1',{},'百度一下')
       ]
     )
  }
}

jsx后缀文件样式

export default{
  data(){
    return {
       path:'www.baidu.com'
    }
  }
  render(){
     consoel.log(this.path)
     return{
       <div>
         <img src={this.path}/>
         <h1>百度一下</h1>
       </div>
     }
  }
}

以上三种文件样式都可以渲染初相同的效果

jsx文件需要安装配置插件,而vue脚手架中已经配置好了,详情

在vue中jsx写法有一些语法也会不一样,如:

<input vModel={this.newTodoText} />
<input vOn:click_stop_prevent={this.newTodoText} />
<p domPropsInnerHTML={html} />

vue中配置项
在这里插入图片描述
而在react中改成了preset-react

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值