gpt4 book ai didi

javascript - Preact 渲染组件到指定的 div

转载 作者:行者123 更新时间:2023-11-30 06:17:10 25 4
gpt4 key购买 nike

因为从 preact cli 生成的 preact 应用程序没有附带任何 index.html ,每个组件渲染都会附加到 body 标签,但我想将组件渲染到指定的 div 中。 例如里面这是我的 component/app.js

import { h, Component } from 'preact';
import { Router } from 'preact-router';
import 'bootstrap/dist/css/bootstrap.min.css';

import Header from './header';

// Code-splitting is automated for routes
import Home from '../routes/home';
import Profile from '../routes/profile';
import Github from '../routes/github';
import List from '../routes/list';

export default class App extends Component {

/** Gets fired when the route changes.
* @param {Object} event "change" event from [preact-router](http://git.io/preact-router)
* @param {string} event.url The newly routed URL
*/
handleRoute = e => {
this.currentUrl = e.url;
};

render() {
return (
<div id="app">
<Header />
<Router onChange={this.handleRoute}>
<Home path="/" />
<Profile path="/profile/" user="me" />
<Profile path="/profile/:user" />
<Github path="/github" />
<List path="/list" />
</Router>
</div>
);
}
}

这是我的 index.jsroutes/list

import { h, Component } from 'preact';
import axios from 'axios';

export default class List extends Component {
state = {
data : []
};
fetchUser = () => {
axios.get(`https://api.dev.xxx`)
.then(response =>{
const data = response.data.data;
this.setState({data: data})
});
}
setUsername = e => {
this.setState({ username: e.target.value });
this.fetchUser();
}
componentDidMount() {
this.fetchUser();
}
render({}, {data}) {
return (
<div class="container">
<h1>Listnya</h1>
{
data.map(d=>(
<div class="card">
<p>{d.id}</p>
<p>{d.name}</p>
</div>
))
}
</div>
);
}
}

正如我们在上面的代码中看到的那样 <div class="container">将附加到正文,但我想在预先指定的容器 div 内渲染卡片。这是怎么做到的?

最佳答案

如果您可以使用候选版本,则可以升级到 3.0:(根目录中有 template.html) https://twitter.com/_prateekbh/status/1114071027238047746

关于javascript - Preact 渲染组件到指定的 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55457874/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com