前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Python100天学习笔记】Day28 前端框架

【Python100天学习笔记】Day28 前端框架

作者头像
天道Vax的时间宝藏
发布2022-04-01 09:16:48
2140
发布2022-04-01 09:16:48
举报
文章被收录于专栏:用户5305560的专栏

前端框架

渐进式框架 - Vue.js

前后端分离开发(前端渲染)必选框架。

快速上手

引入Vue的JavaScript文件,我们仍然推荐从CDN服务器加载它。

代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue"></script>

数据绑定(声明式渲染 )。

代码语言:javascript
复制

<div id="app">
    <h1>{{ product }}库存信息</h1>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            product: 'iPhone X'
        }
    });
</script>

条件与循环。

代码语言:javascript
复制
<div id="app">
    <h1>库存信息</h1>
    <hr>
    <ul>
        <li v-for="product in products">
            {{ product.name }} - {{ product.quantity }}
            <span v-if="product.quantity === 0">
                已经售罄
            </span>
        </li>
    </ul>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            products: [
                {"id": 1, "name": "iPhone X", "quantity": 20},
                {"id": 2, "name": "华为 Mate20", "quantity": 0},
                {"id": 3, "name": "小米 Mix3", "quantity": 50}
            ]
        }
    });
</script>

计算属性。

代码语言:javascript
复制
<div id="app">
    <h1>库存信息</h1>
    <hr>
    <ul>
        <li v-for="product in products">
            {{ product.name }} - {{ product.quantity }}
            <span v-if="product.quantity === 0">
                已经售罄
            </span>
        </li>
    </ul>
    <h2>库存总量:{{ totalQuantity }}台</h2>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            products: [
                {"id": 1, "name": "iPhone X", "quantity": 20},
                {"id": 2, "name": "华为 Mate20", "quantity": 0},
                {"id": 3, "name": "小米 Mix3", "quantity": 50}
            ]
        },
        computed: {
            totalQuantity() {
                return this.products.reduce((sum, product) => {
                    return sum + product.quantity
                }, 0);
            }
        }
    });
</script>

处理事件。

代码语言:javascript
复制
<div id="app">
    <h1>库存信息</h1>
    <hr>
    <ul>
        <li v-for="product in products">
            {{ product.name }} - {{ product.quantity }}
            <span v-if="product.quantity === 0">
                已经售罄
            </span>
            <button @click="product.quantity += 1">
                增加库存
            </button>
        </li>
    </ul>
    <h2>库存总量:{{ totalQuantity }}台</h2>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            products: [
                {"id": 1, "name": "iPhone X", "quantity": 20},
                {"id": 2, "name": "华为 Mate20", "quantity": 0},
                {"id": 3, "name": "小米 Mix3", "quantity": 50}
            ]
        },
        computed: {
            totalQuantity() {
                return this.products.reduce((sum, product) => {
                    return sum + product.quantity
                }, 0);
            }
        }
    });
</script>

用户输入。

代码语言:javascript
复制

<div id="app">
    <h1>库存信息</h1>
    <hr>
    <ul>
        <li v-for="product in products">
            {{ product.name }} - 
            <input type="number" v-model.number="product.quantity" min="0">
            <span v-if="product.quantity === 0">
                已经售罄
            </span>
            <button @click="product.quantity += 1">
                增加库存
            </button>
        </li>
    </ul>
    <h2>库存总量:{{ totalQuantity }}台</h2>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            products: [
                {"id": 1, "name": "iPhone X", "quantity": 20},
                {"id": 2, "name": "华为 Mate20", "quantity": 0},
                {"id": 3, "name": "小米 Mix3", "quantity": 50}
            ]
        },
        computed: {
            totalQuantity() {
                return this.products.reduce((sum, product) => {
                    return sum + product.quantity
                }, 0);
            }
        }
    });
</script>

通过网络加载JSON数据。

代码语言:javascript
复制

<div id="app">
    <h2>库存信息</h2>
    <ul>
        <li v-for="product in products">
            {{ product.name }} - {{ product.quantity }}
            <span v-if="product.quantity === 0">
                已经售罄
            </span>
        </li>
    </ul>
</div>

<script src="https://cdn.jsdelivr.net/npm/vue"></script>
<script>
    const app = new Vue({
        el: '#app',
        data: {
            products: []
        },
        created() {
            fetch('https://jackfrued.top/api/products')
                .then(response => response.json())
                .then(json => {
                    this.products = json
                });
        }
    });
</script>

使用脚手架 - vue-cli

Vue为商业项目开发提供了非常便捷的脚手架工具vue-cli,通过工具可以省去手工配置开发环境、测试环境和运行环境的步骤,让开发者只需要关注要解决的问题。

安装脚手架。

创建项目。

安装依赖包。

运行项目。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前端框架
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档