c# - 是否可以在 Blazor 中使用 Vue 和 Vue 组件?
问题描述
我希望在 Blazor 中使用 Vue/Vuetify 组件,因为它很强大。
我试过这个,但没有运气。
<body>
<div id="app">Loading...</div>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss"></a>
</div>
<script src="_framework/blazor.webassembly.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script>
new Vue({
el: '#app',
message: 'Hello from Vue!'
})
</script>
索引.razor
@page "/"
<h1>Hello, world!</h1>
Welcome to your new app.
<SurveyPrompt Title="How is Blazor working for you?" />
<p>{{ message }}</p>
在 Blazor 中运行 Vue 是否有技巧或解决方法?
解决方案
<!-- wwwroot/index.html -->
<script src="_framework/blazor.webassembly.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script>
window.newVueApp = function () {
new Vue({
el: "#app",
data: {
counter: 0,
},
methods: {
increment() {
this.counter++;
},
},
});
};
</script>
<!-- Shared/MainLayout.razor -->
<div class="content px-4" id="app" v-cloak>
@Body
</div>
...
@code {
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await JS.InvokeVoidAsync("newVueApp");
}
}
<!-- Pages/Index.razor -->
<p>counter: {{ counter }}</p>
<button @click="increment">Increase counter</button>
更新的示例项目在这里。
推荐阅读
- c# - C# - 以天、小时和分钟计算 SLA,不包括非工作时间、周末和公共假期
- primefaces - Primefaces 6.1 p:inputTextarea 取消展开文本框
- javascript - 减少重复代码,尝试将函数分配给变量 - 不起作用
- html - 验证 HTML 输入字段
- javascript - 无痛脚本中的未定义变量
- java - 如何修复“类实例的标识符已从 id 更改为 null”(Java)
- arrays - 如何在matlab中用三个一维数组绘制3d网格图
- python - 使用 Python 搜索 Pandas 系列中的单词
- node.js - node.js 中的测试类,模拟请求
- sql - 更改 API 格式