Tag: Object

  • Vue – 運行ES Module,import與export

    Vue – 運行ES Module,import與export

    Node.js require、module以及exports 模組設定 – Hugo Habor


    1. Module(模組)

    JS- Module 1內容

    export1.js

    const component = {
    data: [ // 資料
    '這是第一句話',
    '這是第二句話',
    '這是第三句話'
    ],
    removeData(id) {
    this.data.splice(id, 1);
    this.render();
    },
    render() { // 渲染方法
    const list = document.querySelector('.component ul');
    let content = '';
    this.data.forEach((item, i) => {
    content = `${content}<li>${item} <button type="button" class="btn" data-id="${i}">移除</button></li>`
    });
    // 縮寫優化
    // const content = component.data.map(item => `<li>${item}</li>`).join('');
    list.innerHTML = content;

    // 加入監聽
    const btns = document.querySelectorAll('.btn');
    btns.forEach(btn => btn.addEventListener('click', (e)=> {


    const id = e.target.dataset.id;
    this.removeData(id)
    }))
    },
    init() {
    this.render();
    }
    }
    component.init();

    匯出JS- Module 內容,進入HTML

    esModule.html

    <!DOCTYPE html><html><head><title>ES 模組</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="images/favicon.ico" rel="shortcut icon"><meta charset="UTF-8"><script src="/javascripts/vendor.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.js"></script></head><body class="bg-lighter">
    <div class="container main my-5"><div class="row"><main class="col post">
    <!-- Vue標題 --><div class="mb-4"><h1 class="mt-0 text-muted">ES 模組</h1><small>檔名:<code>esModule.html</code></small></div>

    <div class="component">
    <ul></ul>
    </div>

    <script type="module">


    import NewComponent from './export1.js';

    NewComponent .init();

    </script>

    </main>

    <aside
    class="col-md-3"><div class="sticky-top" style="top: 76px">
    <div class="list-group">

    <a href="/es6/shorthand.html"
    class="list-group-item list-group-item-action

    ">
    縮寫
    </a>

    <a href="/es6/this.html"
    class="list-group-item list-group-item-action

    ">
    this 的運作
    </a>

    <a href="/es6/arrow_function.html"
    class="list-group-item list-group-item-action

    ">
    箭頭函式
    </a>

    <a href="/es6/separation_of_concerns.html"
    class="list-group-item list-group-item-action

    ">
    關注點分離
    </a>

    <a href="/es6/separation_of_concerns_work.html"
    class="list-group-item list-group-item-action

    ">
    關注點分離 練習題
    </a>

    <a href="/es6/object_reference.html"
    class="list-group-item list-group-item-action

    ">
    物件參考特性
    </a>

    <a href="/es6/promise.html"
    class="list-group-item list-group-item-action

    ">
    Promise
    </a>

    <a href="/es6/esModule.html"
    class="list-group-item list-group-item-action

    active">
    ES Module
    </a>

    <a href="/es6/esModule_2.html"
    class="list-group-item list-group-item-action

    ">
    ES 模組延伸觀念
    </a>

    </div>
    <div class="mt-3 text-end p-2 bg-light rounded">
    <small class="text-black-50 fw-light mb-0">文件版本:2022/11/1</small>
    </div>
    </div>

    </aside>

    </div>
    </div>

    <nav class="navbar fixed-top navbar-expand-sm navbar-dark bg-secondary">
    <div class="container-fluid">
    <a class="navbar-brand" href="/">Vue 3 練習手冊</a>
    <div class="collapse navbar-collapse" id="navbarCollapse">
    <ul class="navbar-nav">
    <li class="nav-item active">
    <a class="nav-link active" href="/es6/shorthand.html">JS 必備觀念</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/intro/createApp.html">認識 Vue.js</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/template/v-text.html">模板</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/optionsApi/options-methods.html">方法</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/components/component_register.html">元件</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/advApi/adv-refs.html">進階</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/router/vue-router.html">路由</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/composition/proxy.html">Composition API</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/pinia/layout.html">Pinia</a>
    </li>
    </ul>
    </div>
    </div>
    </nav>

    <footer class="footer py-2 bg-light">
    <div class="container text-center">
    <small class="text-black-50 fw-light mb-0">六角學院 Vue 課程專屬文件</small>
    </div>
    </footer>
    <link rel="stylesheet" href="/stylesheets/all.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
    </body>
    </html>


    JS- Module 2內容

    <!DOCTYPE html><html><head><title>ES 模組</title><meta name="viewport" content="width=device-width, initial-scale=1"><link href="images/favicon.ico" rel="shortcut icon"><meta charset="UTF-8"><script src="/javascripts/vendor.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/vue/3.2.37/vue.global.js"></script></head><body class="bg-lighter">
    <div class="container main my-5"><div class="row"><main class="col post">

    <!-- 章節標題 --><div class="mb-4"><h1 class="mt-0 text-muted">ES 模組</h1><small>檔名:<code>esModule.html</code></small></div>

    <div class="component">
    <ul></ul>
    </div>

    // 在script 區域內,匯入 module

    <script type="module">


    import NewComponent from './export1.js';
    NewComponent .init();



    // #2-2 具名匯入
    // 單一匯入(建議寫法)

    import {} from './export2.js';


    </script>

    </main>

    <aside
    class="col-md-3"><div class="sticky-top" style="top: 76px">
    <div class="list-group">

    <a href="/es6/shorthand.html"
    class="list-group-item list-group-item-action

    ">
    縮寫
    </a>

    <a href="/es6/this.html"
    class="list-group-item list-group-item-action

    ">
    this 的運作
    </a>

    <a href="/es6/arrow_function.html"
    class="list-group-item list-group-item-action

    ">
    箭頭函式
    </a>

    <a href="/es6/separation_of_concerns.html"
    class="list-group-item list-group-item-action

    ">
    關注點分離
    </a>

    <a href="/es6/separation_of_concerns_work.html"
    class="list-group-item list-group-item-action

    ">
    關注點分離 練習題
    </a>

    <a href="/es6/object_reference.html"
    class="list-group-item list-group-item-action

    ">
    物件參考特性
    </a>

    <a href="/es6/promise.html"
    class="list-group-item list-group-item-action

    ">
    Promise
    </a>

    <a href="/es6/esModule.html"
    class="list-group-item list-group-item-action

    active">
    ES Module
    </a>

    <a href="/es6/esModule_2.html"
    class="list-group-item list-group-item-action

    ">
    ES 模組延伸觀念
    </a>

    </div>
    <div class="mt-3 text-end p-2 bg-light rounded">
    <small class="text-black-50 fw-light mb-0">文件版本:2022/11/1</small>
    </div>
    </div>

    </aside>

    </div>
    </div>

    <nav class="navbar fixed-top navbar-expand-sm navbar-dark bg-secondary">
    <div class="container-fluid">
    <a class="navbar-brand" href="/">Vue 3 練習手冊</a>
    <div class="collapse navbar-collapse" id="navbarCollapse">
    <ul class="navbar-nav">
    <li class="nav-item active">
    <a class="nav-link active" href="/es6/shorthand.html">JS 必備觀念</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/intro/createApp.html">認識 Vue.js</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/template/v-text.html">模板</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/optionsApi/options-methods.html">方法</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/components/component_register.html">元件</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/advApi/adv-refs.html">進階</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/router/vue-router.html">路由</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/composition/proxy.html">Composition API</a>
    </li>
    <li class="nav-item">
    <a class="nav-link " href="/pinia/layout.html">Pinia</a>
    </li>
    </ul>
    </div>
    </div>
    </nav>

    <footer class="footer py-2 bg-light">
    <div class="container text-center">
    <small class="text-black-50 fw-light mb-0">六角學院 Vue 課程專屬文件</small>
    </div>
    </footer>
    <link rel="stylesheet" href="/stylesheets/all.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css">
    </body>
    </html>

    HTML-Script 匯入其他Module

    引用export2.js 模組內部的函式

    函式內部可以裝載任何演算式。

  • Node.js 核心模組-create-server

    Node.js 核心模組-create-server

    資料參考

    Node.js – createServer 起手式 – iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天 (ithome.com.tw)

    1.創建你的第一個 Node.js 伺服器

    • req (request) – 當使用者呼叫資料時所發出的請求。
    • res (response) – 回傳給使用者的資料。

    帶入 createServer 參數

    2.運行你的伺服器

    Edge瀏覽器內的操作

    3.觀看伺服器運作狀態

    4.觀看伺服器運作狀態

    檔案: node apphttp.js

    觀看Visual Studio 內的Terminal 狀態

    Edge瀏覽器內的狀態

  • Node.js require、module以及exports 模組設定

    Node.js require、module以及exports 模組設定

    An Essential Guide to Node.js Modules (javascripttutorial.net)

    1. Module(模組)

    2. require 函數

    3. exports 和 module.exports

    exports 與 module.exports 的不同!

    • module.exports 是暴露模塊的主要對象。當你將一個模塊導入另一個文件時,你實際上獲得的是 module.exports 的內容。
    • exportsmodule.exports 的一個參考,方便將多個對象或函數暴露給外部。

    通常,如果你想從一個模塊導出單一對象(如函數、類等),你可以直接使用 module.exports。如果你想導出多個對象或函數,你可以使用 exports

    使用 module.exports 導出物件內的資料:

    4. 利用Terminal Prompt 出執行檔案 app.js

    5. 模組設定_常用方法

    一般來說,我們要包裹底層商業邏輯,用module.exports 局多!

  • JavaScript-this呼叫的三種方法: call、apply、bind

    JavaScript-this呼叫的三種方法: call、apply、bind

    引言

    在 JavaScript 中,this 是一個特殊的Keyword,代表了現在執行代碼的目標。然而我們需要在不同的上下文中調用函,這時就會用到 callapply bind 這三種方法。

    JS-函式宣告Function Declared、函式表達Function Express、This – Hugo Habor

    This


    參考連接

    https://hsuchihting.github.io/javascript/20200804/4095833756/

    https://www.shubo.io/javascript-this/


    1. call 方法

    call 方法用於調用一個函數,並指定函數內的 this ,以及將函數的參數以參數列表的形式傳遞進去。

    2. apply 方法

    3. bind 方法

    結論

    總結,callapplybind 是 JavaScript 中用於控制函數中 this 值的三種方法。它們在不同的情境中有不同的應用,初學者可以通過這些例子更好地理解它們的使用方式。熟練掌握這些方法將有助於開發者更靈活地處理函數調用的上下文。

  • WPF-Data Binding-Two Way資料繫結 雙向

    不管您的Data Binding繫結元素是什麼,也不論資料來源的本質,每個繫結一定會遵循下圖所說明的模型。

    我們可以把Data Binding 說成資料在元件間互相溝通的橋樑,所以必須要指定Source 發送第 以及你要傳到的目的地-目標(Target)。

    參考資料:

    https://www.cnblogs.com/lzhp/archive/2012/09/11/2673810.html

    元件間雙向傳遞

    表單外觀

    示範兩個TextBox 透過改變內部Text 的方式,來做雙向資料傳遞

    XAML

    我們的範例,主要TextBox1 跟 TextBox2 兩者會互相丟資料。

    UpdateSourceTrigger預設值 =Default

    UpdateSource 這一個屬性是需透過原生元件內部事件改變了屬性,之後來去做傳送。

    利用下列屬性

    Text=”{ Binding ElementName=txtFName, Path=Text, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged

  • JavaScript 核心概念-物件取值、新增、刪除

    JavaScript 核心概念-物件取值、新增、刪除

    物件裡面可以包含很多Type 的屬性,本篇主要陳述每個取值、新增、刪除的方式

    取值、新增、刪除的方式可以利用物件. 標記號(點的方式) 呼叫出來!

    https://chiangyuchi.github.io/2019/05/06/2019-05-06/

    取值的方法01

    我就用人體的組成方式,來給大家示範一下

    試試看在物件內的函式呼叫方式

    component.callFamily

    取值的方法02

    呼叫元件內屬性成員

    component.members.kidney

    取值的方法03

    用不同的方式,呼叫元件內屬性成員

    得知一個結論

    當你要呼叫屬性名稱時,屬性名稱可以為 = 數值、字串


    呼叫函式的方法


    新增屬性

    將執行視窗內的物件屬性拉下去,會看到內部的屬性。


    刪除屬性

    刪除componet 裡面的屬性

    1.deposit

    2.後來新增的[$$$]

    delete component.屬性內容;

  • JS – Read the Data in Object讀取物件內屬性的另一個方法

    如題

    僅演示該方法

    讀取物件內屬性

    當你的物件建立完成後, 你可以利用 [ 中括號 ] 去讀取屬性資料!

    執行結果

  • JS Delete the Data in Object刪除物件資料

    延用物件Dynamics 的範例去解說刪除物件內的屬性!

    https://www.educative.io/answers/what-is-the-delete-operator-in-javascript

    加入刪除物件_屬性

    加入delete 語句

    執行結果

  • JS- Object is Empty 空物件/你的物件內屬性常常變動嗎?

    理解物件的概念之後, 這裡示範空物件產生

    空物件的用法, 一般是用在時常變動內部屬性的的物件名稱

    何謂空物件

    格式: Let 物件名稱 = {大括號}Object is Empty

    執行結果

    物件作用域外_新增屬性

    把該物件名稱 Dynamics

    加入其他的屬性

    • dog
    • playStation
    • food

    執行結果


    更改屬性內部值

    執行結果

  • JavaScript 白話物件範例

    本身是工業機電整合 背景的工程師

    喜歡土炮 + 自己架設環境的個性

    又剛剛好是機械系畢業的…

    接下來讓我用機械、機構、機件去解釋甚麼是 “物件”


    資助一下肝肝的工程師吧! A_A ETH/ERC20

    [ 物件-機械類比 ]

    我們組成機械組成單位, 由大到小去闡述: 
    1. 機件: 機構構成之最原始的構件
    2. 單位機構: 尚未達成完全機構功能要求, 卻可以達到預期的運動
    3. 合成機構: 組成大目的性的預期效果之機構
    4. 機器: 改變能量形式, 達到預期有效的功能
    5. 機械: 除了改變能量形式之外, 也可以轉移能量形式變為功
    https://coggle.it/diagram/W6taIQWWyVMDB1yL/t/%E6%A9%9F%E6%A7%8B%E6%A9%9F%E6%A2%B0%E6%A9%9F%E4%BB%B6

    在開始白話解釋物件時, 我們得先知道括號種類


    [括號分別]

    蠻多人到了我這個年紀, 卻不知道括號有哪幾種?

    這裡我幫忙整理幾個…

    https://zh.wikipedia.org/zh-tw/%E6%8B%AC%E5%8F%B7

    • 小括弧(英語:parentheses,又稱圓括弧括弧
    • 中括弧(英語:square brackets,又稱方括弧
      • 半形 []
      • 全形 []
    • 大括弧(英語:curly brackets, 又稱花括弧
      • 半形 {}
      • 全形 {}
    • 六角括弧 〔〕
    • 方頭括弧
      • 實心 【】
      • 空心 〖〗

    [物件-白話]

    let 機器 ={
    
        {
    機件1:"連桿",
    機件2:"滑塊",
    機件3:"基座",
    完全機構1:"減速機",
    
    },
    {
    
    機件1:"軸承",
    機件2:"鉚釘",
    機件3:"螺帽",
    完全機構1:"被動軸承基座",
    完全機構2:"螺桿",
    
    }
    
    }

    [物件內的括號]

    • []中括號: 陣列使用
    • {}大括號: 物件使用
    • ()小括號: 函式參數使用