vue基本操作[上] 續更----讓世界感知你的存在

来源:https://www.cnblogs.com/xw-01/archive/2023/07/18/17564334.html
-Advertisement-
Play Games

# Vue引用js文件的多種方式 **1.vue-cli webpack全局引入jquery** (1)首先 npm install jquery --save (--save 的意思是將模塊安裝到項目目錄下,併在package文件的dependencies節點寫入依賴。) (2)在webpack. ...


Vue引用js文件的多種方式

1.vue-cli webpack全局引入jquery

(1)首先 npm install jquery --save (--save 的意思是將模塊安裝到項目目錄下,併在package文件的dependencies節點寫入依賴。)

(2)在webpack.base.conf.js裡加入
"""

var webpack = require("webpack")

"""
(3)在module.exports的最後加入
"""

plugins: [
 new webpack.optimize.CommonsChunkPlugin('common.js'),
 new webpack.ProvidePlugin({
 jQuery: "jquery",
 $: "jquery"
 })
]

"""
(4) 在main.js 引入就ok了
"""

import $ from 'jquery'

"""
(5)然後 npm run dev 就可以在頁面中直接用$ 了.

2.vue組件引用外部js的方法

項目結構如圖:
image



content組件代碼:
"""

<template>
 <div>
   <input ref='test' id="test">
   <button @click='diyfun'>Click</button>
 </div>
</template>
<script>
import {myfun} from '../js/test.js' //註意路徑
export default {
 data () {
  return {
   testvalue: ''
  }
 },
 methods:{
   diyfun:function(){
	 myfun();
   }
 }
}
</script>

"""


test.js代碼:

"""

function myfun() {
console.log('Success')
}
export { //很關鍵
 myfun
}

"""


用到了es6的語法。

3.單vue頁面引用內部js方法

(1) 首先 npm install jquery --save (--save 的意思是將模塊安裝到項目目錄下,併在package文件的dependencies節點寫入依賴。)

(2) 在需要引用的vue頁面import引入$,然後使用即可

image



這個圖中有黃色的警告,如果把console.log($)改成這樣:
"""

export default{
  mounted: function(){
	console.log($)
  }
}

"""



Vue數組操作

vue中數組的操作總結:

根據索引設置元素:

1.調用$set方法:

this.arr.$set(index, val);

2.調用splice方法:

this.arr.splice(index, 1, val);

合併數組:

this.arr = this.arr.concat(anotherArr);

清空數組:

this.arr = [];

主要的數組方法:

1.變異方法(修改了原始數組),vue為觸發視圖更新,包裝了以下變異方法:

push()
pop()
shift()
unshift()
splice()  //無論何時,使用該方法刪除元素時註意數組長度有變化,bug可能就是因為她
sort()
reverse()

2.非變異方法(不會修改原始數組而是返回一個新數組),如concat()、filter(),使用時直接用新數組替換舊數組,如上面的合併數組例子。

註意:

//以下操作均無法觸發視圖更新
this.arr[index] = val;
this.arr.length = 2;  





Vue屬性綁定指令 -- v-bind

可簡寫為 :

普通屬性:頁面可解析為id=“4”
"""

<p v-bind:id="2*2">{{msg}}</p>

"""


class屬性綁定
"""

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<meta http-equiv="X-UA-Compatible" content="ie=edge">
	<title>Document</title>
	<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css">
	<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<style>
	.red {
		background: red;
	}
	.big {
		font-size: 4em;
	}
</style>
<body>
	<div id="app">
		<p class='red'>這是一個p段落標簽...</p>
		 <!--綁定red屬性  -->
		<p v-bind:class='redColor'>這是一個p段落標簽...</p>   
		 <!-- 當點擊時,屬性值切換 -->
		<p @click="flag=!flag" :class='{red:flag}'>這是一個p段落標簽...</p>
		<!-- 綁定big和red屬性 -->
		<p class='big' :class="{'red':true}">這是一個p標簽..</p>
		 <!-- 以數組形式綁定big和red屬性 -->
		<p :class="['big','red']">這是一個p標簽..</p>
		 <!-- 綁定big,判斷flag的值是否為true,為true時綁定red屬性 -->
		<p :class="['big',(flag?'red':'')]">這是一個p標簽..</p>
		<!-- 綁定big,判斷flag的值是否為true,為true時綁定red屬性 -->
		<p class='big' :class='flag?"red":""'>這是一個p標簽..</p> 
		<!-- 行內樣式綁定 -->
		<p :style="{ color: activeColor, fontSize: fontSize + 'px' }">菜鳥教程</p>  
	</div>
	<script>
		var vm = new Vue({
			el:"#app",
			data:{
				redColor:'red',
				flag:true,
				activeColor: 'green',
				fontSize: 30
			}
		})
	</script>
</body>
</html>

"""



Vue事件綁定

1.原生事件和組件事件的綁定

原生事件的綁定是通過addEventLister綁定給真實的元素的;組件事件綁定是通過vue自定義的$on實現的。如果要在組件上使用原生事件,需要加.native修飾符,這樣就相當於在父組件中把子組件當做普通html標簽,然後加上原生事件。

2.\(on和\)emit的實現

\(on、\)emit是基於訂閱觀察者模式的,維護一個事件中心,on的時候將事件按名稱存在事件中心裡,稱之為訂閱者,然後emit將對應的事件進行發佈,去執行事件中心裡的對應的監聽器

(1)vue先創建一個構造器,維護一個事件中心events

"""

function EventEmiter(){
	this.events = {}
}

"""



(2)$on

"""

EventEmiter.prototype.on = function(event,cb){
	if(this.events[event]){
		this.events[event].push(cb)
	}else{
		this.events[event] = [cb]
	}
}

"""




(3)$emit

"""

EventEmiter.prototype.emit = function(event){
	let args = Array.from(arguments).slice(1)
	let cbs = this.events[event]
	if(cbs){
		cbs.forEach(cb=>{
			cb.apply(this,args)
		})
	}
}

"""



Vue點擊click事件解析

vue算是前端技術比較火的一門技術了,所以在日常開發當中掌握它還是比較重要的,廢話不多說,先上代碼:
"""

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Title</title>
	<!--<script src="./vue.js"></script>-->
	<script src="2.5.20-vue.js"></script>
</head>
<body>
<div id="app">

"""
//@click點擊事件getMethod和getMethod()帶不帶小括弧其實沒多大的區別,vue在底層會把傳過去的函數統一解析成為方法,帶小括弧說明有相應的實參傳入方法體裡面;

"""

	<!--<p   @click="getMethod">aaaa</p>-->       
	<!--<p   @click="getMethodFun">aaaa</p>-->
	<p   @click="getMethod()">aaaa</p>
	<p   @click="getMethodFun()">bbbb</p>
</div>
</body>
<script>
	var app = new Vue({
		el: '#app',
		data: function () {
			return {
				message: 'father',
				show: true
			};
		},
		methods: {
			getMethod () {      //點擊事件的時候去尋找相應的方法,在底層做轉換直接寫方法名,大括弧裡面寫相應的業務邏輯
				console.log('11');
			},
 //也可以採用匿名函數的寫法定義方法名,然後進行調用這種方法也是可以的,只不過getMethod ()的寫法更加簡潔,但是在實際開發當中這個可是不支持的例如   aaFunc (){}         //直接這樣寫是會報錯的,一定要註意;
			getMethodFun: function () {   
				console.log('22')
			}
		},
	});
</script>
</html>

"""



今天就分享到這裡啦,有時間會續更哦,感謝支持!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Atom N2600, N2800 的某些舊型號機器, 安裝 Ubuntu 時在安裝界面選擇安裝後, 啟動過程中會卡住, 或者數秒即黑屏, 再無反應. 這個問題對於Debian系的其他發行版 Lubuntu, Linux Mint, Debian 都一樣, 但是用Win PE盤可以正常啟動. 經各種... ...
  • ## 文件操作和用戶 ### 複製移動和刪除 在Windows中我們可以通過快捷鍵 ctrl + c 複製,ctrl + v 粘貼,在 linux 中需要使用命令。 #### 複製移動 `cp` 就是 copy 的意思。請看示例: ```javascript // 將 a.txt 複製一份,重命名為 ...
  • 之前將自己所有的 `Http` 站點全部更新為 `Https` 站點,但是在請求後臺介面服務的時候還是 `Http` 請求,導致部署之後,直接在控制台報 `This request has been blocked; the content must be served over HTTPS;` 的... ...
  • # 引言 ## 操作系統的目標 + abstract H/W `抽象化硬體` + multiplex `多路復用` + isolation `隔離性` + sharing `共用(進程通信,數據共用)` + security / access control `安全性/許可權控制` + perform ...
  • ![](https://img2023.cnblogs.com/blog/3076680/202307/3076680-20230717130541155-2006675036.png) # 1. 對於複雜的數值計算而言,SQL 並非首選工具 # 2. 求和 ## 2.1. SUM函數會忽略Null ...
  • 一、介紹 DCL:Data Control Language(數據控制語言),用來管理資料庫用戶,控制資料庫的訪問,許可權。 二、用戶管理 1、查詢用戶 語法: 1、use mysql; 2、select * from user; 預設只有四個賬戶。 2、創建用戶 語法:create user '用戶 ...
  • MySQL8 概述、下載、安裝、使用(Windows2019和centos7.9) 1、MySQL概述 1.1 資料庫相關概念在這一部分,先瞭解三個概念:資料庫、資料庫管理系統、SQL。 名稱 全稱 簡稱 資料庫 存儲數據的倉庫,數據是有組織的進行存儲 DataBase(DB) 資料庫管理系統 操縱 ...
  • 一.介紹 1.什麼是ndk技術? 在學習ndk技術前,我們需要先瞭解一下JNI(Java Native Interface)技術,JNI技術是一種實現Java代碼和C/C++代碼之間交互的技術,它提供了一組編程介面,使得Java程式可以調用C/C++代碼並與其進行通信。通過JNI技術,開發者可以將C ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...