如何在Brython中使用Vuetify?示例代码转换需求
Brython + Vuetify 轮播组件可运行示例
完整代码
<!DOCTYPE html> <html> <head> <link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet"> <meta name="viewport" content="width=device-width, initial-scale=1"> </head> <body> <div id="app"> <v-app> <v-carousel cycle> <v-carousel-item v-for="(item, i) in items" :key="i" :src="item.src"> <v-card class="pa-6" dark> <v-card-title class="text-h4">{{ item.title }}</v-card-title> <v-card-text>{{ item.text }}</v-card-text> <v-btn @click="showAlert(item.title)" color="primary">了解更多</v-btn> </v-card> </v-carousel-item> </v-carousel> </v-app> </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script> <script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script> <script src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/brython@3.10.5/brython_stdlib.js"></script> <script> window.onload = function() { brython(1); }; </script> <script type="text/python"> from browser import window, alert import js # 初始化Vuetify实例 vuetify = js.Vuetify.new() # 定义轮播项数据 def get_data(): return { 'items': [ { 'src': 'https://cdn.vuetifyjs.com/images/carousel/squirrel.jpg', 'title': '松鼠探险', 'text': '观看这只可爱的松鼠探索森林。' }, { 'src': 'https://cdn.vuetifyjs.com/images/carousel/sky.jpg', 'title': '高空美景', 'text': '山脉上空的美丽云朵。' }, { 'src': 'https://cdn.vuetifyjs.com/images/carousel/bird.jpg', 'title': '观鸟时刻', 'text': '自然栖息地中的多彩鸟类。' } ] } # 按钮点击事件处理方法 def show_alert(title): alert(f"你点击了「{title}」!") # Vue应用配置 app_config = { 'el': '#app', 'vuetify': vuetify, 'data': get_data, 'methods': { 'showAlert': show_alert } } # 创建并挂载Vue应用 app = js.Vue.new(app_config) </script> </body> </html>
核心说明
- 访问Vue和Vuetify:通过Brython的
js模块直接调用全局的Vue和Vuetify对象,无需额外封装。 - 数据定义:遵循Vue要求,用Python函数
get_data()返回包含轮播项的字典,确保组件每次实例化时都能获取独立的数据副本。 - 方法绑定:将Python函数
show_alert映射到Vue的methods中,模板里的@click="showAlert(item.title)"会触发该函数。 - Vuetify集成:先初始化Vuetify实例,再将其传入Vue应用配置,即可正常使用所有Vuetify组件。
这个示例实现了自动循环的轮播,每个轮播项包含图片、标题、描述文本和可交互按钮,点击按钮会触发Brython的弹窗提示。
内容的提问来源于stack exchange,提问作者Osh
相关产品推荐
相关产品推荐

