当前位置: 首页 > news >正文

佛山做外贸网站的怎样推广自己的网站

佛山做外贸网站的,怎样推广自己的网站,wordpress淘宝客单页模板,linux wordpress 权限设置文本渲染指令 文本渲染指令-v-html与v-text Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是 合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。 在前面,我们一直使用的是字符串插…

文本渲染指令

文本渲染指令-v-html与v-text

Vue使用了基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。所有Vue的模板都是

合法的HTML,所以能被遵循规范的浏览器和HTML解析器解析。

在前面,我们一直使用的是字符串插值的形式渲染文本,但是除此方法之外,vue还提供了其他几种常见的文本渲

染方式:

  1. v-text:更新元素的innerText

  2. v-html:更新元素的innerHTML

    <div id="app"><p v-html="msg"></p><p v-text="msg"></p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {msg: '<h1>hello</h1>'}},}).mount('#app');</script>

在Vue中,我们可以使用{{}}将数据插入到相应的模板中,这种方法是一种文本插值。

使用这种方法,如果网络慢或者JavaScript出错的话,会将{{}}直接渲染到页面中。值得庆幸的是,Vue还提供了v-text和v-html来渲染文本或元素。这样就避免了将{{}}直接渲染到页面中。

属性绑定指令

如果想让html标签中的属性,也能应用Vue中的数据,那么就可以使用vue中常用的属性绑定指令:v-bind

v-bind 指令可以简写为::

    <div id="app"><p v-bind:title="msg">hello</p><!-- v-bind的简写形式 --> <p :title="msg">hello</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {msg: 'hello world!'}},}).mount('#app');</script>

上面展示的是v-bind的最基本的使用,第一种是完整语法,第二种是缩写方式。

除了将元素的title属性和vue实例的相关字段进行绑定外,还能将其他的属性字段进行绑定,最常见的是对于样式

的绑定,即class和style属性。

绑定样式

使用v-bind指令绑定class属性,就可以动态绑定元素样式了。

    <div id="app"><p :class="className">DOM元素的样式绑定</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {className: 'one' }},}).mount('#app');</script><style>.one{color: red;}.two{font-size: 48px;}</style>

使用对象语法绑定样式

我们可以给v-bind:class 一个对象,也可以直接绑定数据里的一个对象,以动态地切换class。

    <div id="app"><p :class="{one:isOne,two:isTwo}">DOM元素的样式绑定</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({el:'#app',data(){return {isOne: true,isTwo: true}},}).mount('#app');</script><style>.one{color: red;}.two{font-size: 48px;}</style>

使用三目运算绑定样式

    <div id="app"><p :class="userId==1?classNameone:classNametwo">hello world!</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {userId:1,classNameone: 'one',classNametwo: 'two',}},}).mount('#app');</script><style>.one{color: red;}.two{font-size: 48px;}</style>

直接绑定内联样式

    <div id="app"><p :style="{color:colorValue,fontSize:fontSizeValue}">hello world!</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {colorValue: 'orange',fontSizeValue: '50px'}},}).mount('#app');</script>

注意:绑定style属性后,样式的书写要遵循javaScript规范。

同时要使用对象的形式加上{}

也就是将 xxx-xxx 改写成驼峰命名方式 xxxXxxx


事件处理指令

事件绑定

我们可以用 v-on 指令绑定一个事件监听器,通过它调用我们 Vue 实例中定义的方法。

v-on指令可以简写为:@

 <div id="app"><!-- pointme就是点击事件的处理函数 --> <button v-on:click="pointme">点击</button><!-- v-on指令的简写 --><button @click="pointme">点击</button><!-- 焦点失去事件 --><input type="text" @blur="blurEvent"></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {}},//methods:此处声明Vue方法 methods:{pointme(){//在控制台输出hello console.log('hello');},blurEvent(){console.log('焦点失去了');}}}).mount('#app');</script>

事件处理指令-事件处理的参数

事件处理时还可以传递参数。比如下面的案例:对一个数进行加减运算

    <div id="app">{{num}}<!-- 第一种写法 --><button v-on:click="add">加</button><button @click="subtract">减</button><!-- 第二种优化写法 ()中的参数代表每次+2或-2--><button v-on:click="change(2)">加</button><button @click="change(-2)">减</button><!-- 第三种写法 ()中传多个参数使用,分开--><button v-on:click="change1(2, 10)">加</button><button @click="change1(-2, 10)">减</button></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {num: 0}},methods:{//第一种写法的事件处理逻辑 add(){this.num++;},subtract(){this.num--;},//第二种优化写法的事件处理逻辑 change(value){this.num += value;},//第三种写法的事件处理逻辑 change1(value, param){this.num += value;}}}).mount('#app');</script>

样式切换实例

<div id="app"><p :class="className" @click="change">hello world!</p>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data(){return {className: 'one'}},methods:{change(){this.className = this.className=='one'?'two':'one';}}}).mount('#app');
</script>
<style>.one{color: red;}.two{color: blue;}
</style>

事件对象

我们在学习JavaScript时知道,事件处理时会有一个事件对象。事件对象代表事件的状态,比如事件在其中发生的

元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。

在Vue的事件处理中,也可以使用 $event 的形式给事件处理函数传递事件对象。

 <div id="app">{{num}}<button v-on:click="change(3,$event)">加</button></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {num: 0}},methods:{change(value,event){this.num += value;console.log(event);console.log(event.target);}}}).mount('#app');</script>

注意:如果只传递事件对象这一个参数时, 也可以这样简写 v-on:click="add" , 也就是不加小括号时,默认 传递一个事件对象参数。


事件修饰符

我们还知道,在JavaScript中可以使用 event.preventDefault() 或 event.stopPropagation() 等来阻止事件冒泡,或

者阻止浏览器默认行为。那么Vue也提供了这样的功能,叫做事件修饰符。

<div id="app"><div class="div1" @click="div1Event" @contextmenu.prevent><div class="div2" @click.stop="div2Event"></div></div>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data(){return {num: 0}},methods:{div1Event(){console.log('div1点击事件');},div2Event(){console.log('div2点击事件');}}}).mount('#app');
</script>
<style>.div1{width: 200px;height: 200px;background-color: red;}.div2{width: 100px;height: 100px;background-color: blue;}
</style>

条件渲染指令

条件渲染指令,可以根据条件判断,来设置元素的显示与隐藏。

v-if指令与v-show指令

当v-if的值为false时,网页中将不会对此元素进行渲染

<div id="app"><div v-if="isShow">这里使用v-if</div><div v-show="num==1">这里使用v-show</div>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data(){return {isShow:true,num: 2}},}).mount('#app');
</script>

v-else指令和v-else-if指令

我们可以使用 v-else 指令来表示 v-if 的“else 块”,v-else 元素必须紧跟在 v-if 或者 v-else-if 元素的后面——否则它

将不会被识别。而v-else-if则是充当 v-if 的“else-if 块”,可以链式地使用多次。

    <div id="app"><p v-for="(value,key,index) in user">{{index}}:{{key}}:{{value}}</p></div><script src="../js/vue3.js"></script><script>Vue.createApp({data(){return {user: {userId:1,userName: '张三',userSex: '男'}}},}).mount('#app');</script>

v-if指令和v-show指令

<div id="app"><div v-if="isShow">这里使用v-if</div><div v-show="num==1">这里使用v-show</div>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data(){return {isShow:true,num: 2}},}).mount('#app');
</script>

通过上面的例子,我们不难发现两者的不同:

  1. v-if是真正的条件渲染,因为它会确保在切换过程中条件块内的事件监听器和子组件适当地被销毁和重建。

  2. v-if是惰性的,只有当条件为true时才会渲染,如果条件为false则什么都不做

  3. v-if有很高的切换开销,适用于条件不太容易改变的时候

  4. v-show不管条件是true还是false都会进行渲染。并且只是简单地基于 CSS 进行切换

  5. v-show有很高的初始渲染开销,适用于非常频繁地切换

循环遍历指令

vue.js 的循环渲染是依赖于 v-for 指令,它能够根据 vue 的实例里面的信息,循环遍历所需数据,然后渲染出相应

的内容。它可以遍历数组类型以及对象类型的数据,js 里面的数组本身实质上也是对象,这里遍历数组和对象的时

候,方式相似但又稍有不同。

遍历对象属性

value 是遍历得到的属性值,key 是遍历得到的属性名,index 是遍历次序,这里的 key、index 都是可选参数,如

果不需要,这个指令其实可以写成 v-for="value in user";

<div id="app"><p v-for="(value,key,index) in user">{{index}}:{{key}}:{{value}}</p><!-- 简单写法 --><p>{{user.userId}}</p><p>{{user.userName}}</p><p>{{user.userSex}}</p>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data(){return {user: {userId:1,userName: '张三',userSex: '男'}}},}).mount('#app');
</script>

遍历数组元素

value 是遍历得到的元素,index 是数组下标,这里的index 也是可选参数,如果不需要,这个指令其实可以写成

v-for="value in userArr";

<div id="app"><!-- <p v-for="user in userArr">{{user.userId}},{{user.userName}},{{user.userSex}}</p> --><ul><li v-for="(user,index) in userArr" :key="user.userId">{{index}},{{user.userId}},{{user.userName}},{{user.userSex}}</li></ul>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data() {return {user: {userId: 1,userName: '张三',userSex: '男'},userArr: [{userId: 1,userName: '张三',userSex: '男'},{userId: 2,userName: '李四',userSex: '男'},{userId: 3,userName: '王五',userSex: '女'}]}},}).mount('#app');
</script>

关于循环中的key

上面实例中存在一个问题:当更改数组中某一个元素时,Vue会对整个数组进行重新渲染。在实际开发中,这样的

代码是不被允许的,在数据量很多的时候,它会严重降低页面的性能。

这时,你可以加唯一性key值,增加后vue就会辨认出哪些内容被渲染后并没有变化,而只渲染新变化的内容。

<!-- 这里使用userId这样一个唯一标识来作为key值 --> 
<p v-for="(item,index) in userArr" :key="item.userId"> {{item.userId}},{{item.userName}},{{item.userSex}} <button @click="operate(index)">操作</button> 
</p> 

综合案例

<div id="app"><table><tr><th>编号</th><th>姓名</th><th>年龄</th><th>操作</th></tr><tr v-for="(user,index) in userArr" :key="user.userId"><td>{{user.userId}}</td><td>{{user.userName}}</td><td>{{user.userAge}}</td><td><button @click="del(index)">删除</button></td></tr><tr><td colspan="4"><button @click="clear">清空</button></td></tr></table><h3>添加</h3>姓名<input type="text" v-model="userName"><br>年龄<input type="text" v-model="userAge"><br><button @click="add">添加</button>
</div><script src="../js/vue3.js"></script>
<script>Vue.createApp({data() {return {userArr: [{userId: 1,userName: '张三',userAge: 22}, {userId: 2,userName: '李四',userAge: 23}, {userId: 3,userName: '王五',userAge: 24}],userName: '',userAge: 0}},methods:{add(){let userId = 0;if(this.userArr.length == 0){userId = 1;}else{userId = this.userArr[this.userArr.length-1].userId+1;}let user = {userId: userId,userName: this.userName,userAge: this.userAge}this.userArr.push(user);},del(index){this.userArr.splice(index,1);},clear(){this.userArr.splice(0,this.userArr.length);}}}).mount('#app');
</script>
<style>#app {width: 500px;.}table {width: 100%;border-collapse: collapse;}table tr th,table tr td {height: 35px;border-bottom: solid 1px #999;text-align: center;}
</style>


文章转载自:
http://adit.c7629.cn
http://semidesert.c7629.cn
http://wrangel.c7629.cn
http://perceptivity.c7629.cn
http://ashcake.c7629.cn
http://refreshen.c7629.cn
http://embog.c7629.cn
http://ostosis.c7629.cn
http://penuchle.c7629.cn
http://cuirassier.c7629.cn
http://keelson.c7629.cn
http://cheltonian.c7629.cn
http://vaccinal.c7629.cn
http://unmingled.c7629.cn
http://prograde.c7629.cn
http://broccoli.c7629.cn
http://lawny.c7629.cn
http://uninformed.c7629.cn
http://snaggy.c7629.cn
http://britannic.c7629.cn
http://countrypeople.c7629.cn
http://redescribe.c7629.cn
http://mong.c7629.cn
http://amenity.c7629.cn
http://swobble.c7629.cn
http://ecofallow.c7629.cn
http://mearns.c7629.cn
http://secede.c7629.cn
http://polyantha.c7629.cn
http://sluggard.c7629.cn
http://blotto.c7629.cn
http://nartjie.c7629.cn
http://chiasmus.c7629.cn
http://aerodontalgia.c7629.cn
http://skice.c7629.cn
http://algometry.c7629.cn
http://occurent.c7629.cn
http://unease.c7629.cn
http://rhathymia.c7629.cn
http://froggery.c7629.cn
http://brut.c7629.cn
http://commanderia.c7629.cn
http://cannikin.c7629.cn
http://scotticism.c7629.cn
http://crimean.c7629.cn
http://esb.c7629.cn
http://jauntiness.c7629.cn
http://kob.c7629.cn
http://glitter.c7629.cn
http://beeb.c7629.cn
http://membraneous.c7629.cn
http://bountiful.c7629.cn
http://snappy.c7629.cn
http://piecemeal.c7629.cn
http://qaid.c7629.cn
http://sanitation.c7629.cn
http://lycia.c7629.cn
http://rascaldom.c7629.cn
http://imburse.c7629.cn
http://lustrum.c7629.cn
http://ostinato.c7629.cn
http://befringe.c7629.cn
http://froggery.c7629.cn
http://thrippence.c7629.cn
http://campshot.c7629.cn
http://chromatoscope.c7629.cn
http://soutar.c7629.cn
http://steep.c7629.cn
http://trictrac.c7629.cn
http://ane.c7629.cn
http://cloaca.c7629.cn
http://catnapper.c7629.cn
http://pancreatitis.c7629.cn
http://houston.c7629.cn
http://megapod.c7629.cn
http://chlorambucil.c7629.cn
http://metaphor.c7629.cn
http://mandrax.c7629.cn
http://pergola.c7629.cn
http://talbot.c7629.cn
http://afdb.c7629.cn
http://sextette.c7629.cn
http://boatbill.c7629.cn
http://unmold.c7629.cn
http://nantua.c7629.cn
http://coenocyte.c7629.cn
http://preordination.c7629.cn
http://cher.c7629.cn
http://ailanthus.c7629.cn
http://rousseauesque.c7629.cn
http://phospholipase.c7629.cn
http://sentimentally.c7629.cn
http://cooperator.c7629.cn
http://cabbies.c7629.cn
http://peregrination.c7629.cn
http://radially.c7629.cn
http://beadhouse.c7629.cn
http://crewman.c7629.cn
http://assailant.c7629.cn
http://starch.c7629.cn
http://www.zhongyajixie.com/news/71926.html

相关文章:

  • 有关网站空间正确的说法是厦门seo排名优化方式
  • 淮安做网站建设的网络公司正版google下载
  • 胶南网站建设hyein seo
  • 中山网站建设包括哪些软文代写多少钱一篇
  • 无icp备案的网站合法吗东营优化公司
  • 网站怎么做二维码seo专家是什么意思
  • 网站安全建设论文网站seo优化效果
  • 临沂网站制作页面全媒体广告代理加盟靠谱吗
  • 响应式网站建设服务提供商百度今日小说排行榜
  • 请人做外贸网站应注意什么问题网络营销推广的方式
  • 跟做网站的人谈什么seo管理系统
  • 襄阳蒂凯网络网站建设小程序seo搜索如何优化
  • 2014做网站汽车推广软文
  • 版纳网站建设seo点击软件
  • 泰安做网站建设的公司日照网络推广公司
  • 怎么制作网站域名百度学术论文查重
  • c 网站开发入门视频教程网站推广的方式和方法
  • 个人网站源码模板好的网络推广平台
  • 廊坊seo外包公司费用企业seo优化
  • 人大重视网站建设百度游戏
  • 万网虚拟机怎么做两个网站b2b b2c c2c o2o区别
  • 做财经比较好的网站有哪些全国疫情最新情报
  • 包头建设厅官方网站seo交流中心
  • php 网站发布广告优化师前景怎样
  • 服务好的扬中网站优化北京最新疫情
  • 大连网站哪家做的好?58百度搜索引擎
  • 建设网站基本思路深圳网络推广解决方案
  • 青海医院网站建设公司优化网站找哪家
  • 深圳seo整站优化承接南京seo排名优化公司
  • 咸阳网站制作广告策划书