基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(三)

系列文章

  1. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用 abp cli 搭建項目
  2. 基於 abp vNext 和 .NET Core 開發博客項目 – 給項目瘦身,讓它跑起來
  3. 基於 abp vNext 和 .NET Core 開發博客項目 – 完善與美化,Swagger登場
  4. 基於 abp vNext 和 .NET Core 開發博客項目 – 數據訪問和代碼優先
  5. 基於 abp vNext 和 .NET Core 開發博客項目 – 自定義倉儲之增刪改查
  6. 基於 abp vNext 和 .NET Core 開發博客項目 – 統一規範API,包裝返回模型
  7. 基於 abp vNext 和 .NET Core 開發博客項目 – 再說Swagger,分組、描述、小綠鎖
  8. 基於 abp vNext 和 .NET Core 開發博客項目 – 接入GitHub,用JWT保護你的API
  9. 基於 abp vNext 和 .NET Core 開發博客項目 – 異常處理和日誌記錄
  10. 基於 abp vNext 和 .NET Core 開發博客項目 – 使用Redis緩存數據
  11. 基於 abp vNext 和 .NET Core 開發博客項目 – 集成Hangfire實現定時任務處理
  12. 基於 abp vNext 和 .NET Core 開發博客項目 – 用AutoMapper搞定對象映射
  13. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(一)
  14. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(二)
  15. 基於 abp vNext 和 .NET Core 開發博客項目 – 定時任務最佳實戰(三)
  16. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(一)
  17. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(二)
  18. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(三)
  19. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(四)
  20. 基於 abp vNext 和 .NET Core 開發博客項目 – 博客接口實戰篇(五)
  21. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(一)
  22. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(二)
  23. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(三)
  24. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(四)
  25. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(五)
  26. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(六)
  27. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(七)
  28. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(八)
  29. 基於 abp vNext 和 .NET Core 開發博客項目 – Blazor 實戰系列(九)
  30. 基於 abp vNext 和 .NET Core 開發博客項目 – 終結篇之發布項目

上一篇完成了博客的主題切換,菜單和二維碼的显示與隱藏功能,本篇繼續完成分頁查詢文章列表的數據展示。

添加頁面

現在點擊頁面上的鏈接,都會提示錯誤消息,因為沒有找到對應的路由地址。先在Pages下創建五個文件夾:Posts、Categories、Tags、Apps、FriendLinks。

然後在對應的文件夾下添加Razor組件。

  • Posts文件夾:文章列表頁面Posts.razor、根據分類查詢文章列表頁面Posts.Category.razor、根據標籤查詢文章列表頁面Posts.Tag.razor、文章詳情頁Post.razor
  • Categories文件夾:分類列表頁面Categories.razor
  • Tags文件夾:標籤列表頁面Tags.razor
  • Apps文件夾:Apps.razor準備將友情鏈接入口放在裏面
  • FriendLinks文件夾:友情鏈接列表頁面FriendLinks.razor

先分別創建上面這些Razor組件,差不多除了後台CURD的頁面就這些了,現在來逐個突破。

不管三七二十一,先把所有頁面的路由給確定了,指定頁面路由使用 @page 指令,官方文檔說不支持可選參數,但是可以支持多個路由規則。

默認先什麼都不显示,可以將之前的加載中圈圈寫成一個組件,供每個頁面使用。

在Shared文件夾添加組件Loading.razor

<!--Loading.razor-->
<div class="loader"></div>
//Posts.razor
@page "/posts/"
@page "/posts/page/{page:int}"
@page "/posts/{page:int}"

<Loading />

@code {
    /// <summary>
    /// 當前頁碼
    /// </summary>
    [Parameter]
    public int? page { get; set; }
}

這裏我加了三條,可以匹配沒有page參數,帶page參數的,/posts/page/{page:int}這個大家可以不用加,我是用來兼容目前線上的博客路由的。總的來說可以匹配到:/posts/posts/1/posts/page/1這樣的路由。

//Posts.Category.razor
@page "/category/{name}"

<Loading />

@code {
    /// <summary>
    /// 分類名稱參數
    /// </summary>
    [Parameter]
    public string name { get; set; }
}

根據分類名稱查詢文章列表頁面,name當作分類名稱參數,可以匹配到類似於:/category/aaa/category/bbb這樣的路由。

//Posts.Tag.razor
@page "/tag/{name}"

<Loading />

@code {
    /// <summary>
    /// 標籤名稱參數
    /// </summary>
    [Parameter]
    public string name { get; set; }
}

這個根據標籤名稱查詢文章列表頁面和上面差不多一樣,可以匹配到:/tag/aaa/tag/bbb這樣的路由。

//Post.razor
@page "/post/{year:int}/{month:int}/{day:int}/{name}"

<Loading />

@code {
    [Parameter]
    public int year { get; set; }

    [Parameter]
    public int month { get; set; }

    [Parameter]
    public int day { get; set; }

    [Parameter]
    public string name { get; set; }
}

文章詳情頁面的路由有點點複雜,以/post/開頭,加上年月日和當前文章的語義化名稱組成。分別添加了四個參數年月日和名稱,用來接收URL的規則,使用int來設置路由的約束,最終可以匹配到路由:/post/2020/06/09/aaa/post/2020/06/9/bbb這樣的。

//Categories.razor
@page "/categories"

<Loading />

//Tags.razor
@page "/tags"

<Loading />

//FriendLinks.razor
@page "/friendlinks"

<Loading />

分類、標籤、友情鏈接都是固定的路由,像上面這樣就不多說了,然後還剩一個Apps.razor

//Apps.razor
@page "/apps"

<div class="container">
    <div class="post-wrap">
        <h2 class="post-title">-&nbsp;Apps&nbsp;-</h2>
        <ul>
            <li>
                <a target="_blank" href="https://support.qq.com/products/75616"><h3>吐個槽_留言板</h3></a>
            </li>
            <li>
                <NavLink href="/friendlinks"><h3>友情鏈接</h3></NavLink>
            </li>
        </ul>
    </div>
</div>

在裏面添加了一個友情鏈接的入口,和一個 騰訊兔小巢 的鏈接,歡迎大家吐槽留言噢。

現在可以運行一下看看,點擊所有的鏈接都不會提示錯誤,只要路由匹配正確就會出現加載中的圈圈了。

文章列表

在做文章列表的數據綁定的時候遇到了大坑,有前端開發經驗的都知道,JavaScript弱類型語言中接收json數據隨便玩,但是在Blazor中我試了下動態接受傳遞過來的JSON數據,一直報錯壓根運行不起來。所以在請求api接收數據的時候需要指定接收對象,那就好辦了我就直接引用API中的.Application.Contracts就行了啊,但是緊接着坑又來了,目標框架對不上,引用之後也運行不起來,這裏應該是之前沒有設計好。

於是,我就想了一個折中的辦法吧,將API中的返回對象可以用到的DTO先手動拷貝一份到Blazor項目中,後續可以考慮將公共的返回模型做成Nuget包,方便使用。

那麼,最終就是在Blazor中添加一個Response文件夾,用來放接收對象,裏面的內容看圖:

有點傻,先這樣解決,後面在做進一步的優化吧。

將我們複製進來的東東,在_Imports.razor中添加引用。

//_Imports.razor
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Meowv.Blog.BlazorApp.Shared
@using Response.Base
@using Response.Blog

@inject HttpClient Http
@inject Commons.Common Common

@inject HttpClient Http:注入HttpClient,用它來請求API數據。

現在有了接收對象,接下來就好辦了,來實現分頁查詢文章列表吧。

先添加三個私有變量,限制條數,就是一次加載文章的數量,總頁碼用來計算分頁,還有就是API的返回數據的接收類型參數。

/// <summary>
/// 限制條數
/// </summary>
private int Limit = 15;

/// <summary>
/// 總頁碼
/// </summary>
private int TotalPage;

/// <summary>
/// 文章列表數據
/// </summary>
private ServiceResult<PagedList<QueryPostDto>> posts;

然後當頁面初始化的時候,去加載數據,渲染頁面,因為page參數可能存在為空的情況,所以要考慮進去,當為空的時候給他一個默認值1。

/// <summary>
/// 初始化
/// </summary>
protected override async Task OnInitializedAsync()
{
    // 設置默認值
    page = page.HasValue ? page : 1;

    await RenderPage(page);
}

/// <summary>
/// 點擊頁碼重新渲染數據
/// </summary>
/// <param name="page"></param>
/// <returns></returns>
private async Task RenderPage(int? page)
{
    // 獲取數據
    posts = await Http.GetFromJsonAsync<ServiceResult<PagedList<QueryPostDto>>>($"/blog/posts?page={page}&limit={Limit}");

    // 計算總頁碼
    TotalPage = (int)Math.Ceiling((posts.Result.Total / (double)Limit));
}

在初始化方法中設置默認值,調用RenderPage(...)獲取到API返回來的數據,並根據返回數據計算出頁碼,這樣就可以綁定數據了。

@if (posts == null)
{
    <Loading />
}
else
{
    <div class="post-wrap archive">
        @if (posts.Success && posts.Result.Item.Any())
        {
            @foreach (var item in posts.Result.Item)
            {
                <h3>@item.Year</h3>
                @foreach (var post in item.Posts)
                {
                    <article class="archive-item">
                        <NavLink href="@("/post" + post.Url)">@post.Title</NavLink>
                        <span class="archive-item-date">@post.CreationTime</span>
                    </article>
                }
            }
            <nav class="pagination">
                @for (int i = 1; i <= TotalPage; i++)
                {
                    var _page = i;

                    if (page == _page)
                    {
                        <span class="page-number current">@_page</span>
                    }
                    else
                    {
                        <a class="page-number" @onclick="@(() => RenderPage(_page))" href="/posts/@_page">@_page</a>
                    }
                }
            </nav>
        }
        else
        {
            <ErrorTip />
        }
    </div>
}

在加載數據的時候肯定是需要一個等待時間的,因為不可抗拒的原因數據還沒加載出來的時候,可以讓它先轉一會圈圈,當posts不為空的時候,再去綁定數據。

在綁定數據,for循環頁碼的時候我又遇到了一個坑,這裏不能直接去使用變量i,必須新建一個變量去接受它,不然我傳遞給RenderPage(...)的參數就會是錯的,始終會取到最後一次循環的i值。

當判斷數據出錯或者沒有數據的時候,在把錯誤提示<ErrorTip />扔出來显示。

做到這裏,可以去運行看看了,肯定會報錯,因為還有一個重要的東西沒有改,就是我們接口的BaseAddress,在Program.cs中,默認是當前Blazor項目的運行地址。

我們需要先將API項目運行起來,拿到地址配置在Program.cs中,因為現在還是本地開發,有多種辦法可以解決,可以將.HttpApi.Hosting設為啟動項目直接運行起來,也可以使用命令直接dotnet run

我這裏為了方便,直接發布在IIS中,後續只要電腦打開就可以訪問了,你甚至選擇其它任何你能想到的方式。

關於如何發布這裏先不做展開,有機會的話寫一篇將.net core開發的項目發布到 Windows、Linux、Docker 的教程吧。

所以我的Program.cs中配置如下:

//Program.cs
using Meowv.Blog.BlazorApp.Commons;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.DependencyInjection;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace Meowv.Blog.BlazorApp
{
    public class Program
    {
        public static async Task Main(string[] args)
        {
            var builder = WebAssemblyHostBuilder.CreateDefault(args);
            builder.RootComponents.Add<App>("app");

            var baseAddress = "https://localhost";

            if (builder.HostEnvironment.IsProduction())
                baseAddress = "https://api.meowv.com";

            builder.Services.AddTransient(sp => new HttpClient
            {
                BaseAddress = new Uri(baseAddress)
            });

            builder.Services.AddSingleton(typeof(Common));

            await builder.Build().RunAsync();
        }
    }
}

baseAddress默認為本地開發地址,使用builder.HostEnvironment.IsProduction()判斷是否為線上正式生產環境,改變baseAddress地址。

現在可以看到已經可以正常獲取數據,並且翻頁也是OK的,然後又出現了一個新的BUG。

解決BUG

細心的可以發現,當我點擊頭部組件的Postsa 標籤菜單時候,頁面沒有發生變化,只是路由改變了。

思來想去,我決定使用NavigationManager這個URI和導航狀態幫助程序來解決,當點擊頭部的Postsa 標籤菜單直接刷新頁面得了。

Common.cs中使用構造函數注入NavigationManager,然後添加一個跳轉指定URL的方法。

/// <summary>
/// 跳轉指定URL
/// </summary>
/// <param name="uri"></param>
/// <param name="forceLoad">true,繞過路由刷新頁面</param>
/// <returns></returns>
public async Task RenderPage(string url, bool forceLoad = true)
{
    _navigationManager.NavigateTo(url, forceLoad);

    await Task.CompletedTask;
}

forceLoad = true的時候,將會繞過路由直接強制刷新頁面,如果forceLoad = false,則不會刷新頁面。

緊接着在Header.razor中修改代碼,添加點擊事件。

@*<NavLink class="menu-item" href="posts">Posts</NavLink>*@

<NavLink class="menu-item" href="posts" @onclick="@(async () => await Common.RenderPage("posts"))">Posts</NavLink>

總算是搞定,完成了分頁查詢文章列表的數據綁定,今天就到這裏吧,未完待續…

開源地址:https://github.com/Meowv/Blog/tree/blog_tutorial

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

【翻譯】.NET 5 Preview5發布

今天,發布了.NET 5.0 Preview5。主要對它進行了一小部分新功能和性能的改進。.NET 5.0 Preview 4包含了一些計劃和.NET 5.0要交付的內容。
現在,大多數的功能都已經包含在裏面,但是有許多功能還未到最終狀態。預計這個版本在Preview 7中完善。

可以下載適用於Windows,macOS和Linux的.NET 5.0 Preview 5:

  • Windows and macOS installers
  • Binaries
  • Docker images
  • Snap installer

ASP.NET Core和EF Core也在今天發布了

我們需要使用Visual Studio 2019 16.7才能使用.NET 5.0。 安裝最新版本的C#擴展,以將.NET 5.0與Visual Studio Code結合使用。 Mac的Visual Studio尚不支持.NET 5.0。

發布說明:

  • .NET 5.0 release notes
  • .NET 5.0 known issues
  • GitHub release
  • GitHub tracking issue

RyuJIT改進

對RyuJIT JIT編譯器進行了以下改進

  • 新的、更快的、可移植的tailcall helper實現。
  • ARM64硬件內部物理的實現進程
    • 實現ASIMD Extract Insert ExtractVector64 ExtractVector128
    • 實現 ASIMD widening, narrowing, saturating intrinsics
    • 添加VectorTableList和TableVectorExtension內部函數
    • 添加對ARM64內部函數的CreateScalarUnsafe()支持
    • ARM64對Vector64.Create()和Vector128.Create()的內在支持
    • 使用arm64 intrinsic優化BitOperations.PopCount ()
  • 在影響正則表達式編譯的情況下改進了JIT的速度
  • 使用新的硬件特性BSF/BSR改進英特爾架構性能
  • 實現Vector{Size}.AllBitsSet

Native exports

曾要求為導出本機二進制文件啟用導出功能,這些功能已在很長一段時間內調用.NET代碼。 這是一個很好的方案,現在通過.NET 5.0啟用它。 該功能的構建塊是託管對UnmanagedCallersOnlyAttribute的API支持。

這個功能是創建更高級別體驗的基礎。 團隊的Aaron Robinson一直在從事.NET Native Exports項目,該項目為將.NET組件作為本機庫發布提供了更完整的體驗。 目前正在尋求有關此功能的反饋,以幫助我們確定該方法是否應包含在產品中。

.NET本地導出項目使我們能夠:

  • 公開自定義的 native exports。
  • 不需要像COM這樣的高級互操作技術。
  • 跨平台工作

現有的項目可以實現類似的方案,例如:

  • Unmanaged Exports
  • DllExport

[重大變化]刪除.NET 5.0中內置的WinRT支持

注意:這個變化將出現在預覽6中。這是一個早期的通知。

Windows Runtime(WinRT)是Windows中公開使用的新API的技術和ABI。 您可以通過.NET代碼調用這些API,類似於使用C ++的方法。 在.NET Core 3.0中添加了對WinRT interop的支持,這是對Windows桌面客戶端框架(Windows Forms和WPF)添加支持的一部分。

最近,一直在與Windows團隊緊密合作,以更改和改進WinRT interop與.NET的協作方式。 我們已用Windows團隊在.NET 5.0中提供的C#/WinRT工具鏈替換了內置的WinRT支持。 WinRT互操作中的此更改是一項重大更改,使用WinRT的.NET Core 3.x應用將需要重新編譯。 我們將在即將來臨的預覽中提供更多信息。

在.NET 5中的支持WinRT API中明確指出了這些好處:

  • WinRT互操作可以獨立於.NET runtime進行開發和改進。
  • 使WinRT互操作與為其他操作系統(如iOS和Android)提供的互操作系統對稱。
  • 可以利用許多其他。net特性(AOT, c#特性, IL linking)。
  • 簡化.NET運行時代碼庫(刪除6萬行代碼)。

將System.DirectoryServices.Protocols擴展到Linux和macOS

添加對System.DirectoryServices.Protocols的跨平台支持。 在Preview 5中,添加了對Linux的支持,並在Preview 6中添加了對macOS的支持。對Windows支持已經存在。

System.DirectoryServices.Protocols是比System.DirectoryServices更低級別的API,並且啟用更多方案。 System.DirectoryServices包含僅適用Windows的概念/實現,因此製作跨平台並不是一個很容易的事情。
這兩個API都支持對目錄服務服務器(如LDAP或Active Directory)進行控制和交互。

Alpine 3.12

本周,增加了對Alpine 3.12,.NET Core 3.1和.NET 5的支持。 Alpine Linux的維護者於5月29日宣布發布Alpine 3.12。 與過去相比,以更快,更可預測的方式增加對新Linux發行版的支持。

會發現他們已經開始使用一種新的發布模型來發布新發行版的問題。 這就是我們對Alpine 3.12所做的。 將來,我們計劃更早地發布這些問題。 例如,需要跟蹤的下一個發行版可能是Ubuntu 20.10。 尚未決定,但可能會在7月或8月發布該發行版的類似問題,以準備10月發行的新Ubuntu版本。

最後

感謝大家對.NET 5.0預覽版的反饋以及您的早期反饋。 正如文章的簡介中所建議的那樣,現在才發布大約一半。 現在包括了大多數功能,但是我們希望在接下來的幾個預覽中會進行許多更改,以完成體驗並消除仍然存在的粗糙邊緣。

來源:https://devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-5/

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

8億兒童鉛中毒 聯合國:全球1/3孩子血裡有高濃度鉛

摘錄自2020年7月30日自由時報報導

聯合國與環保組織「Pure Earth」在一份大規模健康危機報告中警告,目前全世界有多達8億兒童正在遭受經由水和空氣感染的「鉛中毒」。聯合國兒童基金會(UNICEF)說明,據估計,每3個孩子就有1個血液中含有高濃度鉛,需採取立即的行動以防止對其神經或生長造成長期傷害。

鉛中毒問題目前在南亞地區極為普遍,可能原因為露天熔礦爐、油漆、汽油等,許多國家的地下鉛管線甚至可能影響飲用水的品質。鉛中毒目前已被證實會影響兒童的行為、認知、說話,進而在長大後可能會有腎臟損害、心血管疾病等問題。

聯合國報告指出,這種毒素主要源於未經回收或處理不善的汽車電池,在一些鉛中毒最為嚴重的國家,汽車數量自2000年開始暴增。

污染治理
國際新聞
鉛中毒
兒童

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※帶您來了解什麼是 USB CONNECTOR  ?

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※教你寫出一流的銷售文案?

挹注氣候30% 歐盟25兆振興方案到底有多綠?

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

※教你寫出一流的銷售文案?

※超省錢租車方案

阿聯巴拉卡核電廠啟動 阿拉伯世界首例

摘錄自2020年08月01日中央通訊社阿拉伯聯合大公國報導

阿拉伯聯合大公國今天(1日)宣布,境內的巴拉卡核能發電廠(Barakah Nuclear Energy Plant)正式啟動運轉,這不僅是阿聯第一座核電廠,也是阿拉伯世界首座。

國際原子能總署(International Atomic Energy Agency)的阿聯代表阿爾卡比(Hamad Alkaabi)在推特發文表示:「阿拉伯聯合大公國巴拉卡核能發電廠的首座核反應爐,已達到初次臨界並成功啟動。」法新社報導,阿聯當局對巴拉卡核電廠4座反應爐的首座反應爐核發許可後,阿聯今年2月開始將燃料棒放入反應爐內,以期未來邁向商轉。

人口約有1000萬人的阿聯蘊藏豐富石油及天然氣,但國內用電需求量相當龐大。位於波斯灣沿岸的巴拉卡核電廠,原本預計在2017年開始供電,但官方聲稱因為安全和管理規定等因素而多次延宕。

能源轉型
國際新聞
阿拉伯聯合大公國
巴拉卡
核能發電廠
核能

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?

疫情延燒通勤族心慌慌 美國掀起騎機車熱潮

摘錄自2020年8月2日中央社報導

美國近來掀起機車熱潮,因為武漢肺炎(COVID-19)疫情蔓延,使通勤族對大眾運輸工具敬而遠之。

法新社報導,位於紐約長島市(Long Island City)的Unik Moto主要販售台灣三陽工業與光陽工業的車款,總經理班森(Chris Benson)說,現在機車需求量是2019年7月的三倍。

布魯克林區(Brooklyn)另一間機車行的負責人哈吉米納斯(Andrew Hadjiminas)告訴法新社:「人們開始思索在疫情期間和疫情過後如何通勤和行動,他們在尋找既安全又有趣的移動方式。」

最近幾週,紐約客也大量使用共享機車公司Revel的電動出租機車。Revel公司發言人表示,紐約市3月實施封城前那兩週,Revel機車使用總趟數僅超過4000趟。到了6月最後兩週,每天用量幾乎達到1萬8000趟。不過,由於曾有兩名Revel騎士因車禍身亡,Revel公司已於本週暫停在紐約提供服務。

能源轉型
國際新聞
美國
疫情下的食衣住行
機車
交通運輸

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※別再煩惱如何寫文案,掌握八大原則!

※教你寫出一流的銷售文案?

※超省錢租車方案

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※產品缺大量曝光嗎?你需要的是一流包裝設計!

聯合國報告:疫情恐加深東南亞地區不平等

摘錄自2020年7月30日中央社報導

聯合國今天(30日)發布COVID-19對東南亞的影響報告(Policy Brief: The Impact of COVID-19 on South-East Asia)指出,武漢肺炎疫情加深東南亞的不平等現象,東南亞國家的政府應該把重點放在疫情對社會經濟的影響。疫情對政治、經濟和健康的影響,重擊社會底層人民,使他們失業且更加貧窮。

報告指出,東南亞要從疫情中復甦有四個關鍵領域,包括打擊不平等、消弭數位落差、綠化經濟並保持人權和良好的治理。

報告也進一步強調,在面對疫情時,東南亞國家以及他們的領導人在保障人權以及良好治理上具有重要的角色。領導人們應該多利用以社區為中心的組織、促進包容及團結,並挺身而出反對歧視。

土地利用
國際新聞
東南亞國家
疫情下的社會衝突
貧窮

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※別再煩惱如何寫文案,掌握八大原則!

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

※超省錢租車方案

※教你寫出一流的銷售文案?

網頁設計最專業,超強功能平台可客製化

※產品缺大量曝光嗎?你需要的是一流包裝設計!

垃圾也「三倍」? 研究:各國減塑政策來不及 2040年入海塑膠垃圾將增三倍

環境資訊中心綜合外電;姜唯 編譯;林大利 審校

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※教你寫出一流的銷售文案?

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※回頭車貨運收費標準

※別再煩惱如何寫文案,掌握八大原則!

※超省錢租車方案

※產品缺大量曝光嗎?你需要的是一流包裝設計!

蝴蝶效應!中日韓梅雨季重災情 歸因於北極異常高溫

摘錄自2020年8月4日自由時報報導

中日韓3國今年受梅雨季暴雨影響,接連發生重大災情,南韓媒體引述專家說法稱,今年梅雨季的強降雨災情與全球暖化下的北極異常高溫有關。

根據《韓聯社》報導,今年梅雨季比起往年為長,中國華中地區、長江流域爆發劇烈洪災,日本九州暴雨重災,南韓強降雨亦造成死亡災情,其根本原因就是全球持續暖化。

《韓聯社》引述專家所言指出,在全球暖化下,北極氣溫大幅升高導致積雪及冰層融化,暴露出的黃褐色地表加劇從陽光吸取熱能,讓當地空氣溫度飆升。在暖空氣影響下,原本從東向西流動的冷空氣轉而朝南北方向作用,進而移動至中日韓等國。

南韓氣象廳則認為,今年梅雨季偏長因素雖不能僅歸因在全球暖化,但確實是氣候變化造成。

氣候變遷
土地利用
國際新聞
中國
日本
韓國
北極
極端高溫
全球暖化
災害

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

※超省錢租車方案

※別再煩惱如何寫文案,掌握八大原則!

※回頭車貨運收費標準

※教你寫出一流的銷售文案?

※產品缺大量曝光嗎?你需要的是一流包裝設計!

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

垃圾危害海洋 日生研發魚不愛吃塑膠袋

摘錄自2020年8月3日公視報導

有一群日本高中生研發出可以自動分解,而且魚類不小心吃下去,也會吐掉的塑膠袋;預計再過一兩年,就能夠上市使用。

神奈川縣川崎市的「洗足學園高中」,有學生團體突發奇想,決定研發能在大自然中自行分解,卻又不會被魚類跟海龜吞食的塑膠袋,於是用「苯甲地那銨」進行實驗。

在大學跟贊助企業的協助下,學生團隊實驗製作出含有2%到20%「苯甲地那銨」的可自動分解塑膠袋。實驗後發現,只要有「苯甲地那銨」4%含量,就會讓魚類在吃進塑膠時,因為苦味而吐出。

目前這款塑膠袋,以能在海洋分解的材質製造,只要進入海洋,到完全自然分解,只需要1到2年時間。目前學生團隊,還在研究新成分,期盼降低製造費用,以便廣為商家使用。另外也將持續改善,塑膠袋完全分解前,苦味可能已經消失的缺點,進行修正。

海洋
污染治理
國際新聞
日本
海洋垃圾
海洋生物
廢棄物

本站聲明:網站內容來源環境資訊中心https://e-info.org.tw/,如有侵權,請聯繫我們,我們將及時處理

【其他文章推薦】

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

※廣告預算用在刀口上,台北網頁設計公司幫您達到更多曝光效益

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

南投搬家公司費用需注意的眉眉角角,別等搬了再說!

※教你寫出一流的銷售文案?