iT邦幫忙

0

怎麼JS前端框架(vue)也有import這種東西了....那不是C或是python的嗎????

  • 分享至 

  • xImage

是這樣子的 我剛好開始學習vue

目前最困惑的就是為什麼有 import這種語法(汗顏....看了很害怕

因為這是以前學C跟學python才看到的引入資料庫語法
當初發現JS很好玩 而且不用import 就很爽

結果現在學習到vue 就出現好多要import的東西

因為我最初的印象就是寫C++ 要寫某些API 忘了import就狂出錯
對我來說是很深的陰影
很怕vue學不起來...

想請問各位前端以及工程師大大們 這個import是跟C++他們的概念學來的嗎
是否是相同的呢

而且有分為什麼選項式 組合式 完全搞不懂差別
希望各位可以分析一下 感恩
歡迎大家討論

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2023-03-22 08:30:35 檢舉
1. 你就算單純開筆記本寫網頁,script 引用也是一種import機制,現在有寫程式不import的嗎?
2. 選項式/組合式都是寫作方式,選項式是vue一直以來的方式,好懂,但你一頁如果要寫很多行就知道要上下移動的痛苦了。
組合式主要也是為了改進這種問題,在vue3提出的。

初學建議學選項式就好,vue2/3大部分都能通用。
若你要高薪的話
建議你轉後端,趁現在還沒入的很深
前端跟後端一樣也相當複雜,很多都要學
你說的只是邏輯問題,習慣了自然就會用
如果真的不習慣,轉業會是你的救贖
froce iT邦大師 1 級 ‧ 2023-03-22 09:43:54 檢舉
> 如果真的不習慣,轉業會是你的救贖

會覺得script src跟import不一樣,不用import就很爽,我是覺得在哪端都一樣啦。
而且搞不好在後端也一天到晚import *
淺水員 iT邦大師 6 級 ‧ 2023-03-23 00:16:10 檢舉
有空可以搜尋關鍵字:「commonjs amd umd esm」
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
3
deh
iT邦研究生 1 級 ‧ 2023-03-21 22:16:42
最佳解答

結論:import是ES6開始加入js的

以下是詳細說明:
import語法是用來引入其他檔案或庫的功能,這可以讓你在你的程式碼中使用其他檔案或庫中的函數和方法。在JavaScript ES6中引入import和export這兩個語法,是為了方便開發者在編寫複雜的程式碼時,更好地組織代碼。這與C++中的引入API有些類似,但是並不完全相同。

在Vue框架中,有兩種不同的組件導入方式,分別是選項式和組合式。

選項式是通過import語法導入單個組件,這種方式適用於較簡單的項目,當你只需要引入一個組件時,可以使用這種方式。

舉個例子,如果你需要使用一個Button組件,你可以在你的程式碼中使用以下import語法:

import { Button } from 'element-ui';

這樣你就可以在你的程式碼中使用Button組件了。

而組合式則是通過import語法導入多個組件,並通過Vue.extend方法組合成一個新的組件。這種方式適用於較複雜的項目,當你需要引入多個組件並將它們組合成一個新的組件時,可以使用這種方式。

舉個例子,如果你需要使用多個組件,並將它們組合成一個新的組件MyComponent,你可以在你的程式碼中使用以下import語法:

import Component1 from './Component1.vue';
import Component2 from './Component2.vue';
import Component3 from './Component3.vue';
import { Vue } from 'vue';
const MyComponent = Vue.extend({
  components: {
    Component1,
    Component2,
    Component3,
  },
  // ...
});

這樣就可以在程式碼中使用MyComponent組件了。

個人覺得自己做幾次就會熟悉了啦......

親切又專業的回答 超讚 馬上選你最佳解答(。•ㅅ•。)♡

3
sx0800
iT邦新手 1 級 ‧ 2023-03-22 11:15:09

只有學校作業那種小小功能的才不用 import,
現在的程式都需能飛天遁地不 import 是要一個 js 寫5000 行嗎!
請盡快適應。

2
Nick
iT邦新手 5 級 ‧ 2023-03-22 16:33:20

目前個人在使用的程式語言
前端 Javascript 用 import,
後端 PHP 用 require,
底層 Rust 用 use

只要寫程式就逃不掉匯入請習慣.

我一開始學C++就知道匯入了 只是很新奇發現JS也有匯入
覺得很有趣醬子(。◕∀◕。)

2
淺水員
iT邦大師 6 級 ‧ 2023-03-23 00:40:56

提一下我喜歡 ESM 的原因吧
(以下內容與 vue 無直接關係,單純提 javascript ESM 的部分)

import 會寫在 js 檔案的開頭
所以一開始就知道這份 js 檔必須依賴哪些外部的資源
如果是傳統使用 <script src="..."> 的方式
就無法很直觀的得知這樣的關係

假設某頁面用到 a.js 與 b.js
而 a.js 相依於 1.js 與 2.js
b.js 相依於 1.js 與 3.js
當我們引入 a.js 與 b.js 時,1.js, 2.js, 3.js 會自動加載
不需要我們寫在 html 裡面

之後某天因為某因素用不到 b.js 功能
就直接移除 b.js 即可

這有點像是我們要辦某件事
找這件事情的服務員
他會自動找其他相關的人手一樣
不需要我們主動把人手給他
(雖然相依的檔案還是要放在伺服器,但可以透過 npm 根據 package.json 自動安裝,也很簡單)

另外,透過一些打包工具
例如 rollup、webpack 等
可以把 ESM 打包成單一的 js 檔案提供瀏覽器執行
或是把 ESM 轉成 UMD,就可以像傳統的方式作為函式庫被引入
轉成 commonjs 可以在 node 環境用 require 引入

還有 ESM 在打包可以做 Tree Shaking
會自動移除一些用不到的程式碼
有可能會得到較小的檔案

謝謝你的分享 超級有幫助 跟那種酸言酸語等級差超多
您的回答是給予這個世界正面能量的
超級讚

我要發表回答

立即登入回答