sách gpt4 ai đã đi

vue.js - vuejs - 如何将 ajax 加载的 html 转换为 vuejs 组件

In lại 作者:搜寻专家 更新时间:2023-10-30 22:47:19 29 4
mua khóa gpt4 Nike

我有一个带有一些 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}}




关于vue.js - vuejs - 如何将 ajax 加载的 html 转换为 vuejs 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51375545/

29 4 0
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com