angular组合preact

317 阅读1分钟

preact

大小3kb,可以当做angular的一个dom库,而且可以对接使用preact生态系统,react组件修改成preact还是蛮简单的,这样就可以解决angular中用render2操作dom的繁琐问题了!O(∩_∩)O哈哈~,异想天开,动工!

test.tsx

import { h } from 'preact';
export const item = <div>test</div>
// 导入
import { render } from 'preact';
import { item } from './test';
// ngInit时渲染
export class AppComponent implements OnInit {
  constructor(private ele: ElementRef){}
  ngOnInit() {
    render(this.ele.nativeElement);
  }
}

ng serve 和 ng build 运行成功

ng serve

ng build --prod运行失败,提示没有处理该类型文件。我去!

看源码,aot编译时没有处理tsx文件类型的loader

const test = /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/;
return {
    module: {
        rules: [{
            test,
            use: loaders
        }],
    },
    plugins: [_createAotPlugin(wco, {
        tsConfigPath
    }, host, true, extract)]
};

先修改源码,加入tsx

rules: [{
    test: /\.tsx?$/,
    loader: webpackLoader
}]

在运行,ng build --prod就可以了!