Vue 入门

目录

一 . vue2_templates模型实例:

二. vue3_templates模型实例: 

三. v-text,v-html,v-on,v- show,v-if,v-else-if,v-else,v-for实例应用:

四. vue面试题分享: 

1、什么是mvvm 、 mvc 模型?

2、vue双向数据绑定的原理?

3.v-if 和v-show有什么区别? 


  • vue ui 图形化指令

  1. 指令化:npm init(初始化)
  2. npm install vue@2 安装软件 
  3. vue create myapp 创建vue项目
  4. npm run server 运行项目

一 . vue2_templates模型实例:

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<!-- 引入vue2.xx -->
	<script src="js/v2.6.10/vue.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
	<!-- 2.dom节点 -->
	<div id="app">
		{{msg}}
	</div>
	<!-- 3.vue对象 -->
	<script>
		var vm = new Vue({
			el:'#app',
			data:{
				msg:'qikuedu'
			}
		})
	</script>
	
</body>
</html>

二. vue3_templates模型实例: 

<!DOCTYPE html>
<html lang="zh">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<!-- 引入vue2.xx -->
	<script src="js/v3.2.8/vue.global.prod.js" type="text/javascript" charset="utf-8"></script>
</head>
<body>
	<!-- 2.dom节点 -->
	<div id="app">
		{{msg}}
	</div>
	<!-- 3.vue对象 -->
	<script>
		var app =Vue.createApp({
			data(){
				return{
					msg:'qikuedu'
				}
			}
		})
		var vm = app.mount("#app")
	</script>
	
</body>
</html>

 

三. v-text,v-html,v-on,v- show,v-if,v-else-if,v-else,v-for实例应用:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>

		<!--1. 引入Vue 2.xx -->
		<script src="js/v2.6.10/vue.js" type="text/javascript" charset="utf-8"></script>

	</head>
	<body>

		<!-- 2. Dom节点 -->
		<div id="app">
			{{msg}}

			<!--1. v-text  innerText 的属性用法 -->
			<h1 v-text='flag?msg:say'></h1>
			<!--2. v-html innerHTML 的属性用法 , html可以识别标签 -->
			<h1 v-html='flag?msg:say'></h1>
			<h1>{{flag?msg:say}}</h1>

			<!-- 4. v-on 事件绑定 -->
			<button v-on:click="flag = !flag;count+=1" type="button">按钮{{count}}</button>

			<br>

			<!-- 3. v-show  -->
			<!-- <img v-show="flag" src="img/pic72.jpg" > -->
			<!-- <img v-if="flag" src="img/npm.png" > -->


			<!-- 5. 条件渲染 v-if  v-else-if  v-else  -->

			<!-- <img v-if="count==1" src = 'img/lesscss.png'>
		   <img v-else-if="count==2" src = 'img/nodejs.png'>
		<img v-else src = 'img/npm.png'> -->


			<!-- 6. 列表渲染  v-for -->
			<!--  v-for  在严格情况下 要添加 :key 唯一标识 -->
			<!-- <div v-for="item,index in myImgs" :key="index"  class="item">
				<h1>{{index+1}}-{{item.title}}</h1>
				<img :src="item.img">
			</div> -->


		</div>

		<!-- 3.Vue对象 -->
		<script type="text/javascript">
			var vm = new Vue({
				el: '#app',
				data: {
					msg: 'qikuedu',
					say: '你好奇酷',
					flag: true,
					count: 0,
					myImgs: [{
							title: 'nodejs',
							img: 'img/nodejs.png'
						},
						{
							title: 'npm',
							img: 'img/npm.png'
						},
						{
							title: 'lesscss',
							img: 'img/lesscss.png'
						},
						{
							title: 'pic72',
							img: 'img/pic72.jpg'
						}
					]
				}
			});
		</script>
	</body>
</html>

四. vue面试题分享: 

1、什么是mvvm 、 mvc 模型?

 MVC: MVC即model-view-controller(模型-视图-控制器)是项目的一种分层架构思想,它把复杂的业 务逻辑,抽离为职能单一的小模块,每个模块看似相互独立,其实又各自有相互依赖关系。它的好处 是:保证了模块的智能单一性,方便程序的开发、维护、耦合度低。

mvvm: MVVM:MVVM即 Model-View-ViewModel,(模型-视图-控制器)它是一种双向数据绑定的模式, 用viewModel来建立起model数据层和view视图层的连接,数据改变会影响视图,视图改变会影响数据 。

2、vue双向数据绑定的原理?

        vue.js 是采用数据劫持结合发布者-订阅者模式的方式,通过Object.defineProperty()来劫持各个属 性的setter,getter,在数据变动时发布消息给订阅者,触发相应的监听回调。

具体步骤:

        第一步:需要 observe 的数据对象进行递归遍历,包括子属性对象的属性,都加上 setter 和 getter 这样的话,给这个对象的某个值赋值,就会触发setter,那么就能监听到了数据变化 。

        第二步:compile解析模板指令,将模板中的变量替换成数据,然后初始化渲染页面视图,并将每 个指令对应的节点绑定更新函数,添加监听数据的订阅者,一旦数据有变动,收到通知,更新视图 黑马程序员。

         第三步:Watcher订阅者是Observer和Compile之间通信的桥梁,主要做的事情是: 1、在自身实例化时往属性订阅器(dep)里面添加自己 2、自身必须有一个update()方法 3、待属性变动dep.notice()通知时,能调用自身的 update() 方法,并触发Compile中绑定的回 调,则功成身退。         第四步:MVVM作为数据绑定的入口,整合Observer、Compile和Watcher三者,通过Observer 来监听自己的model数据变化,通过Compile来解析编译模板指令,最终利用Watcher搭起Observer和 Compile之间的通信桥梁,达到数据变化 -> 视图更新;视图交互变化(input) -> 数据model变更的双向 绑定效果。

3.v-if 和v-show有什么区别? 

        v-if 是“真正”的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁 和重建,操作的实际上是dom元素的创建或销毁。

         v-show 就简单得多——不管初始条件是什么,元素总是会被渲染,并且只是简单地基于 CSS 进行切换 它操作的是display:none/block属性。

        一般来说, v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地 切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

### Vue.js 入门教程 #### 安装与引入 Vue.js 为了开始使用 Vue.js,在开发环境中可以采用如下方式来加载 Vue开发版本,该版本包含了有助于调试的命令行警告: ```html <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> ``` 对于生产环境,则推荐使用精简过的生产版以减少文件大小和优化性能[^1]。 #### 创建第一个 Vue 应用程序 创建一个简单的 Vue 实例通常涉及以下几个部分:导入 Vue 和其他必要的模块、配置组件以及挂载到 DOM 上。下面是一个基本的例子展示如何设置一个新的 Vue 应用程序实例并将其渲染至页面上的特定 HTML 元素内: ```javascript import Vue from &#39;vue&#39;; import App from &#39;./App.vue&#39;; import router from &#39;./router&#39;; new Vue({ router, render: h => h(App) }).$mount(&#39;#app&#39;); ``` 这段代码首先通过 `import` 导入了所需的库和自定义组件 (`App`) 及路由配置(`router`);接着利用这些资源初始化了一个新的 Vue 实例,并指定了它应该呈现的内容(即 `render` 函数返回的结果)。最后调用了 `$mount()` 方法指定要附加此应用程序的具体位置——在这个例子中是 ID 为 `#app` 的元素[^2]。 #### 数据绑定基础 Vue 提供了一种非常直观的方式来管理视图中的动态数据。可以通过在 JavaScript 中定义对象属性作为响应式的源数据,然后轻松地将它们链接到模板内的表达式或指令上。这里有一个更具体的案例说明怎样做: ```html <div id="root"> {{ message }} </div> <script type="text/javascript"> const vm = new Vue({ el: &#39;#root&#39;, data: { message: &#39;Hello Vue!&#39; } }); // 或者也可以显式调用 mount 方法 // vm.$mount(&#39;#root&#39;) </script> ``` 在此示例里,当浏览器解析上述脚本时,会在页面上显示字符串 `"Hello Vue!"` 。这是因为我们已经把变量 `message` 绑定到了 `<div>` 标签内部的位置,每当这个值发生变化的时候,相应的文本也会自动更新[^3]。 #### 总结 以上就是关于 Vue.js 基础入门的一些核心概念和技术要点。希望这能帮助理解如何快速搭建起基于 Vue 技术栈的应用项目框架结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

让我打个盹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值