Bài viết phổ biến của tác giả
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个带有一些 html 的#app 容器,我在#app 上创建了 Vue 实例,所有内容都被编译并转换为 Vuejs 组件。然后我在另一个 html 字符串中使用 ajax,我需要以某种方式将其编译成组件,我该怎么做?
1 Câu trả lời
Đây là bản mẫu
的用例选项,它可以引用 在您的 DOM 中使用特定 ID(就像您使用
el
选项对您的应用所做的那样),或直接使用您的 HTML 模板:
Vue.component({
template: ` `
});
您可以轻松地将其转换为 Async Component通过向您的组件列表提供一个函数,该函数返回一个使用组件构造函数解析的 Promise(例如使用 Vue.extend
):
const MyLoadingComponent = Vue.extend({
template: '#my-loading',
});
new Vue({
el: '#app',
dữ liệu() {
trở lại {
items: [],
};
},
components: {
'my-component': loadComponentWithLoading,
},
methods: {
addItem() {
this.items.push(Math.random());
},
},
});
// https://v2.vuejs.org/v2/guide/components-dynamic-async.html#Handling-Loading-State
function loadComponentWithLoading() {
trở lại {
component: loadComponent(),
loading: MyLoadingComponent,
};
}
// https://v2.vuejs.org/v2/guide/components-dynamic-async.html#Async-Components
function loadComponent() {
return new Promise(function(resolve, reject) {
loadComponentHtml().then((html) => {
resolve(Vue.extend({
// https://v2.vuejs.org/v2/api/#template
template: html,
}));
});
});
}
function loadComponentHtml() {
return new Promise(function(resolve, reject) {
thiết lập thời gian chờ(() => {
resolve(` `);
}, 2000);
});
}
.myItem {
color: green;
}
.myLoading {
font-style: italic;
color: red;
}
{{item}}
Loading…
关于vue.js - vuejs - 如何将 ajax 加载的 html 转换为 vuejs 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51375545/
Tôi là một lập trình viên xuất sắc, rất giỏi!